c源码实现创建固定大小的文件
怎么用c源码在应用程序中创建一个256*1024大小的文件
------解决方案--------------------FILE *f = fopen("test","w");
fseek(f,SEEK_CUR,256*1024-1);
fputc(0,f);
这样就可以了。
或者用linux api。
int ftruncate(int fd, off_t length)
空洞是空洞,但是**文件大小**是确实是256*1024了,只是占用的磁盘很少。这种方法速度最快。
否则就一直填充256*1024字节的数据进去,不过这个创建速度很慢。
------解决方案--------------------直接建立一个空的256*1024(全部写上0xFF)的固定大小的文件不就好了。
#define SIZE (256*1024)
int write_bytes = 0, write_size = 0;
char buffer[1024];
memset(buffer, 0xFF, sizeof(buffer));
FILE fp = fopen("file.bin", "wb");
if(fp){
while(SIZE){
if(SIZE < 1024){
write_size = SIZE;
}
else
write_size = 1024;
SIZE -= fwrite(buffer, sizeof(char), write_size, fp);
}
}
fclose(fp);