0
在C中,rewind()
調用在文件的前面開始下一次寫操作。後退()後,你可以使fprintf()寫入文件結尾(例如,完全覆蓋)
據我所知,當我打電話給fprintf()
時,它會寫入到我想寫的字符串的末尾,並且沒有更多。如果現有文件的數據超過了我正在寫入的字符串的末尾,則不會覆蓋。
有沒有辦法改變這種行爲,以便rewind()
可以用來有效地執行快速覆蓋整個文件?
在C中,rewind()
調用在文件的前面開始下一次寫操作。後退()後,你可以使fprintf()寫入文件結尾(例如,完全覆蓋)
據我所知,當我打電話給fprintf()
時,它會寫入到我想寫的字符串的末尾,並且沒有更多。如果現有文件的數據超過了我正在寫入的字符串的末尾,則不會覆蓋。
有沒有辦法改變這種行爲,以便rewind()
可以用來有效地執行快速覆蓋整個文件?
如果要將文件截斷爲零長度,請在寫入模式下重新打開它。如果你想在它打開的時候截斷它,ftruncate
應該在POSIX系統中完成它。我相信在Windows中有_chsize
和_ftruncate
,它們是相似的。