2011-09-12 26 views
0

在C中,rewind()調用在文件的前面開始下一次寫操作。後退()後,你可以使fprintf()寫入文件結尾(例如,完全覆蓋)

據我所知,當我打電話給fprintf()時,它會寫入到我想寫的字符串的末尾,並且沒有更多。如果現有文件的數據超過了我正在寫入的字符串的末尾,則不會覆蓋。

有沒有辦法改變這種行爲,以便rewind()可以用來有效地執行快速覆蓋整個文件?

回答

1

如果要將文件截斷爲零長度,請在寫入模式下重新打開它。如果你想在它打開的時候截斷它,ftruncate應該在POSIX系統中完成它。我相信在Windows中有_chsize_ftruncate,它們是相似的。