Linux C语言实现清除文件中的内容

Linux C语言实现清除文件中的内容

有时候我们的程序把一个文件中的内容清空,然后重新写,比如我最近写的一个性能检测小工具,我需要把检测到的内容写入到一个日志文件,然后将这些日志发送出去,然后我再把新的日志写进来,这时候就遇到一个问题,如果我不把旧的内容清除掉,那么新的内容可能会在原来的内容后面追加,也许会直接覆盖,这取决于你是怎么打开的文件。但是也没有想过如果新的内容长度大于原来的长度,这好说直接覆盖了就可以了,但是如果新的内容长度小于原来的内容长度怎么办?只能覆盖一部分啊,这是不是就有问题了,这时候我们就需要清除文件中的内容了。下面我给大家提供两个清除文件内容的办法

1、使用fopen()函数

FILE *fopen(const char *filename, const char *mode)

fopen是C语言的标准库函数 ,其中参数‘w’:用于创建一个用于写入的空文件。如果文件名称与已存在的文件相同,则会删除已有文件的内容,文件被视为一个新的空文件。

#include

#include

int main()

{

FILE * fp;

fp = fopen ("file.txt", "w");

fclose(fp);

return(0);

}

2、使用ftruncate()函数

int ftruncate(int fd, off_t length);

ftruncate是系统调用函数,用于设置文件大小,fd就是打开的文件描述符,length就是设置文件长度,我们需要清空文件则设置为0.,使用完记得关闭文件描述符。

#include

#include

#include

int main() {

char *name = "test";

//打开文件且拥有可写权限

int fd = open(name,O_CREAT|O_RDWR,0666);

ftruncate(fd,0);

close(fd);

return 0;

}

相关推荐

怎么修改excel语言设置在哪里设置
365体育备用网站

怎么修改excel语言设置在哪里设置

📅 07-14 👁️ 7341
女人一生必读的10本书排行榜
英超365bet体育投注

女人一生必读的10本书排行榜

📅 07-03 👁️ 698
iPhone备忘录如何备份?使用iCloud或第三方软件
英超365bet体育投注

iPhone备忘录如何备份?使用iCloud或第三方软件

📅 07-06 👁️ 3393