fseek新创建的文件

时间:2015-07-26 22:03:08

标签: c file fseek

我对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的文件?

2 个答案:

答案 0 :(得分:3)

http://en.cppreference.com/w/c/io/fseek

  

POSIX允许在现有文件末尾之外进行搜索。如果输出是   在此搜索之后执行,来自间隙的任何读取将返回零   字节。如果文件系统支持,则会创建sparse file

答案 1 :(得分:1)

你可以这样做,它创建差距文件。任何从间隙读取的返回零字节。系统会对文件系统进行优化。