2013-04-10 68 views
1

我正在處理服務器/客戶端應用程序。我想維護名爲「Information.txt」的文本文件中的所有活動客戶端的信息。 我每隔三個月更新一次這個文本文件。因此,我希望文本文件在每3秒鐘後清除其所有內容而不刪除文件。 有什麼辦法可以做到嗎? :( 我不想使用freopen函數()。清除文本文件的內容

+1

使用'fopen'而不是好嗎? – 2013-04-10 10:45:47

+0

是的,使用fopen不是問題:)我只是不想使用freopen()。 – Ayse 2013-04-10 10:53:39

+1

關閉並用「w」打開。而是「w +」 – 2013-04-10 11:01:41

回答

1

的fopen(文件名,旗)

打開,旗文件= 「W」 或「WB嘗試「並且將被清除

+0

很高興!花了我整整一天在互聯網上搜索,並在幾分鐘內解決了問題。非常感謝你:) – Ayse 2013-04-10 10:54:59

+0

但現在,如果我打開一個帶有「w」標誌的文件,我無法將此文件中的數據讀入緩衝區。 :(可能是什麼原因?:( – Ayse 2013-04-10 10:59:21

+1

它會清除所有的數據,當你打開它。閱讀http://pubs.opengroup.org/onlinepubs/009695399/functions/fopen.html – 2013-04-10 11:01:57

3

定期清除文件的一個問題是,如果在文件被清除之後但寫入文件之前進程崩潰,則會丟失數據:舊數據消失,但新數據還沒有。

解決此問題的常用方法是創建一個新文件,寫入該文件,然後移動新文件以替換舊文件。這樣你總是有一個文件,有時(很短的時間)你有兩個文件。

1

只需打開該文件fopen和W +或白平衡設置的標誌W¯¯

fopen man page

W¯¯

截斷文件長度爲零或者創建用於書寫的文本文件。 流位於文件的開頭。

W +

打開閱讀和寫作。如果該文件不存在 ,則會創建該文件,否則會被截斷。該流位於文件開頭的 處。