现在,当我一遍又一遍地使用write系统调用时,它只是附加到一个文件,让我们调用file.txt,如果我在C中调用sys调用write,在file.txt上,它会不断地。有一种情况,给定相同的文件,我想从中删除所有内容,并只添加一行。这样做我怎么样?我不想创建一个新文件,我想在同一个文件中工作。
谢谢!
答案 0 :(得分:1)
行为取决于文件的打开模式:听起来你当前在append
模式下打开了;你需要打开常规写作才能获得你想要的行为。
答案 1 :(得分:1)
将O_TRUNC
传递给open()
或将"w"
,"wb"
,"w+"
,"wb+"
或"w+b"
传递给{{1} }}
答案 2 :(得分:1)
只需调用truncate
或ftruncate
即可将文件剪切为零字节。然后写下你想要的行。您无需关闭或重新打开文件,您可以使用现有的句柄。
答案 3 :(得分:0)
当你调用fopen()时,你需要传递适当的模式:read,write,append等。这是对fopen()的好评。