2011-01-27 90 views
16

我有一個用戶1的數據的文件。我想通過清除文件的內容來爲user2使用相同的文件。如何清除C文件中的全部內容?

我的想法是,當一個新用戶來臨時,以前用戶的數據應該清楚,同一個文件應該準備好給新用戶。

回答

31

。當你用「w」標誌打開一個文件時,它會創建一個空文件進行寫入。如果已存在具有相同名稱的文件,則其內容將被刪除,並將該文件視爲空的新文件。

如果文件已經打開,您可以使用stdio.h中的freopen()函數與「w」模式,因爲它將首先關閉該文件,然後重新打開文件,然後重新打開它,以便擦除以前文件中的任何文件。

14

fopen(filename, flag)只是標誌打開= "w""wb"和作爲@stefan說使用fopen()與「W」模式將做的工作對你來說都將被清除

+0

感謝名單斯特凡,但我想強行清空文件(明確) – mujahid 2011-01-27 10:42:47

+1

多數民衆贊成斯特凡說。 – Rozuur 2011-01-27 10:44:19

3

有兩種方式:

1. fd=open(filename,O_RDONLY | O_WRONLY | O_TRUNC); 


2. [cat /dev/null > filename] for BASH. It can be directly used in c program using [system()] system call. 

    system("cat /dev/null > filename");