簡體   English   中英

rewind()之后,是否可以使fprintf()寫入文件末尾(例如,完全覆蓋)

[英]After rewind(), can you make fprintf() write to end of file (e.g. complete overwrite)

在C語言中, rewind()調用在文件的開頭開始下一次寫入。

據我了解,當我調用fprintf() ,它將寫入到我嘗試寫入的字符串的末尾,並且不再執行。 如果現有文件中的數據超出了我正在寫入的字符串的末尾,則不會覆蓋該數據。

有沒有一種方法可以更改此行為,以便可以使用rewind()有效執行整個文件的快速覆蓋?

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM