-6

现在,当我一遍又一遍地使用 write 系统调用时,它只是附加到一个文件,让我们调用 file.txt,如果我要在 C 中调用 sys call write,在 file.txt 上,它会不断地出现。有一种情况,给定同一个文件,我想删除它的所有内容,只添加一行。我该怎么做?我不想创建一个新文件,我想在同一个文件中工作。

谢谢!

4

4 回答 4

1

行为取决于文件打开的模式:听起来你当前在append模式下打开;您需要以常规写入方式打开才能获得所需的行为。

于 2013-02-12T03:33:13.850 回答
1

传给或传给, , ,或。O_TRUNC_open()"w""wb""w+""wb+""w+b"fopen()

于 2013-02-12T03:39:30.557 回答
1

只需调用truncateftruncate将文件剪切为零字节。然后写下你想要的那一行。您不需要关闭或重新打开文件,您可以使用现有的句柄。

于 2013-02-12T03:39:42.867 回答
0

当您调用 fopen() 时,您需要将其传递给适当的模式:读取、写入、追加等。这是对fopen()的一个很好的回顾。

于 2013-02-12T03:38:26.253 回答