日期:2014-05-16  浏览次数:20610 次

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