在C中,rewind()
调用开始文件前面的下一次写入。
据我所知,当我调用fprintf()
时,它会写入我想写的字符串的末尾,而不是更多。如果现有文件的数据超过我正在编写的字符串的末尾,则不会覆盖该文件。
有没有办法改变这种行为,以便rewind()
可以用来有效地快速覆盖整个文件?
答案 0 :(得分:1)
如果要将文件截断为零长度,请在写入模式下重新打开它。如果要在打开时截断它,ftruncate
应该在POSIX系统中执行此操作。我相信,在Windows中有_chsize
和_ftruncate
,它们是相似的。