代码之家  ›  专栏  ›  技术社区  ›  Puddler

你能通过搜索EOF来创建未定义的数据吗?

  •  2
  • Puddler  · 技术社区  · 9 年前

    如果您使用 fseek 要越过文件的末尾,然后在EOF之后追加数据,EOF和您所写内容之间的数据是否未定义?

    randomLengthPastEOF ?

    unsigned char *someText= "ExampleText";
    int length = 11;
    int randomLengthPastEOF  = 10;
    
    FILE *output = fopen("/Example/FilePath", "wb");
    fseek(input, randomLengthPastEOF ,SEEK_END);
    fwrite(someText, 1, length, output);
    

    我找不到任何可能发生的事情的参考,所以我认为它是未定义的。

    2 回复  |  直到 9 年前
        1
  •  5
  •   Markus Laire    9 年前

    POSIX将中间的数据定义为零字节: http://www.unix.com/man-page/POSIX/3posix/fseek/

        2
  •  5
  •   MAP    9 年前