读书人

c源码兑现创建固定大小的文件

发布时间: 2013-07-27 22:21:01 作者: rapoo

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);

读书人网 >UNIXLINUX

热点推荐