在rewind()之后,你可以将fprintf()写入文件末尾(例如完全覆盖)

时间:2011-09-12 20:43:52

标签: c file io overwrite

在C中,rewind()调用开始文件前面的下一次写入。

据我所知,当我调用fprintf()时,它会写入我想写的字符串的末尾,而不是更多。如果现有文件的数据超过我正在编写的字符串的末尾,则不会覆盖该文件。

有没有办法改变这种行为,以便rewind()可以用来有效地快速覆盖整个文件?

1 个答案:

答案 0 :(得分:1)

如果要将文件截断为零长度,请在写入模式下重新打开它。如果要在打开时截断它,ftruncate应该在POSIX系统中执行此操作。我相信,在Windows中有_chsize_ftruncate,它们是相似的。