方法:open一个文件,用fseek偏移你想要的大小减1,在最后写上一个字节的值(任意)。
#include <stdio.h>
int main()
{
FILE * f;
char i=0;
f=fopen("fseek.data","w+");
if(!f)
{
printf("can't open fsek.data/n");
}
printf("fopen/n");
fseek(f,2147483646,0);
printf("file size:%ld/n",ftell(f));
fwrite(&i,1,1,f);
fseek(f,2147483646,1);
fwrite(&i,1,1,f);
fseek(f,2147483646,1);
fwrite(&i,1,1,f);
//fseek(f,100,0);
//fwrite(&i,1,1,f);
//printf("file size:%ld/n",ftell(f));
fclose(f);
return 0;
}
但是这种方法产生的文件其实是一个空洞文件,只有文件大小,不占用磁盘空间。