Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C系统调用,删除文件_C_System - Fatal编程技术网

C系统调用,删除文件

C系统调用,删除文件,c,system,C,System,现在,当我一次又一次地使用write系统调用时,它只是附加到一个文件lets call file.txt。如果我在C中调用sys call write,在file.txt上,它只是不断地。在某种情况下,给定同一个文件,我想删除其中的所有内容,只添加一行。我该怎么做呢?我不想创建新文件,我想在同一个文件中工作 谢谢 该行为取决于文件的打开模式:听起来您当前是以附加模式打开的;您需要以常规写入方式打开,才能获得所需的行为。调用fopen时,您需要将其传递到适当的模式:读取、写入、附加等。下面是对的一

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


谢谢

该行为取决于文件的打开模式:听起来您当前是以附加模式打开的;您需要以常规写入方式打开,才能获得所需的行为。

调用fopen时,您需要将其传递到适当的模式:读取、写入、附加等。下面是对的一个很好的回顾。

传递O_TRUNC以打开文件,或者将w、wb、w+、wb+或w+b传递到fopen。

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

在此处发布之前,您应该对正在使用的功能进行基础研究。那么,我不是太懒了,不想看手册页,甚至不想用谷歌搜索函数名吗,帮帮我。com这个问题需要代码。请通读,以避免问题被否决。所以写下它将严格覆盖其内容,对吗?假设文件已打开,我将不得不再次执行打开命令,并将truncate传递给它?不,打电话给ftruncate。