我对C中的fseek()用法有疑问。我知道它可以设置fopen()创建的文件描述符的偏移位置。但它是否也可以设置新创建的文件的偏移位置?更具体地说,我可以:
FILE * pFile;
pFile = fopen ( "myfile.txt" , "wb" ); //myfile.txt doesn't exit before
fseek ( pFile , 1024*1024*1024 , SEEK_SET);
fclose(pFile);
它会创建一个1 GB大小且没有内容的文件吗?或者我应该至少写一些东西来创建这个1 GB的文件?
答案 0 :(得分:3)
http://en.cppreference.com/w/c/io/fseek
POSIX允许在现有文件末尾之外进行搜索。如果输出是 在此搜索之后执行,来自间隙的任何读取将返回零 字节。如果文件系统支持,则会创建sparse file。
答案 1 :(得分:1)
你可以这样做,它创建差距文件。任何从间隙读取的返回零字节。系统会对文件系统进行优化。