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

1、使用fopen()函数
FILE *fopen(const char *filename, const char *mode)

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

#include <stdio.h>
#include <stdlib.h>
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 <stdio.h>#include <unistd.h>#include <sys/types.h>int main() {char *name = "test";//打开文件且拥有可写权限int fd = open(name,O_CREAT|O_RDWR,0666);ftruncate(fd,0);close(fd);return 0;}

Linux C语言实现清除文件中的内容相关推荐

  1. R语言读取txt文件中的内容

        在RGui中读取.txt文件中的内容,采用函数read.table("xxx.txt",head=TRUE|FALSE); 其中head=TRUE表示含有属性的标题,hea ...

  2. Linux使用sed命令删除文件中指定内容

    因为日志文件太大,希望删除过早的一部分日志,虽然可以用vi或vim打开后删除,但是因为文件很大,打开就很耗时. 因此打算使用sed命令,在不打开文件的情况下删除,但是删除后需要把内容存入一个新文件中, ...

  3. c语言把一个文件中的内容复制到另外一个文件中的代码的另外一种写法

    #include<stdio.h> /*标准输入输出*/    #include<string.h> /*字符串操作*/    #include<stdlib.h> ...

  4. linux C语言多线程库pthread中条件变量的正确用法逐步详解

    linux C语言多线程库pthread中条件变量的正确用法: 了解pthread常用多线程API和pthread互斥锁,但是对条件变量完全不知道或者不完全了解的人群. 关于条件变量的典型应用,可以参 ...

  5. linux字符串排序文件,Linux awk+uniq+sort 统计文件中某字符串出现次数并排序

    https://blog.csdn.net/qq_28766327/article/details/78069989 在服务器开发中,我们经常会写入大量的日志文件.有时候我们需要对这些日志文件进行统计 ...

  6. linux C语言 对本地文件进行读写操作

    linux C语言 对本地文件进行最简单读写操作 读取json文件 保存json文件 读取json文件 对本地以cjson格式保存的文本进行读取 /* 读取json文件 */ const char* ...

  7. linux命令---查找文件中的内容

    linux命令---查找文件中的内容 [yang@localhost ~]$ cat 1.txt |egrep '123456789|second'-------匹配123456789或者second ...

  8. 如何用c语言从txt文件中读取数据

    用C语言从txt文件中读取数据,可以使用C标准库文件自带的文件接口函数进行操作. 一.打开文件: FILE *fopen(const char *filename, const char *mode) ...

  9. zypper 删除mysql_如何在 Linux 上安装/卸载一个文件中列出的软件包?

    原标题:如何在 Linux 上安装/卸载一个文件中列出的软件包? 我们可以手动去安装这些软件但是这将花费大量的时间.你可以手动安装一俩个服务器,但是试想如果你有大概十个服务器呢.在这种情况下你无法手动 ...

最新文章

  1. 多视觉任务的全能: HRNet
  2. 上传文件到服务器指定目录,文件名相同自动替换PHP实现代码
  3. Remoting Practice Sample
  4. centos 7 如何验证oracle安装成功_linux下Oracle数据的安装详解
  5. JasperMES.cn JasperMES.com.cn 我的MES网站
  6. SAP UI5 getHeaderFooterOptions
  7. deprecated_@Deprecated新外观可能是什么?
  8. 有线电视的现状与发展,全国一网与广电5G一体化建设
  9. python 示例_Python日历类| yeardayscalendar()方法与示例
  10. 搭建SSM框架之Spring
  11. 让你事半功倍的小众 Python库
  12. python getopt_Python getopt
  13. java程序设计基础_陈国君版第五版_第六章习题
  14. icmp协议用在什么服务器上,ICMP协议是什么?ICMP协议的作用是什么?
  15. android系统存储空间不足怎么办,手机内存不足怎么办?手机内存不足如何清理?...
  16. csdn前200的大牛
  17. python怎么去掉换行符_python去除空格和换行符的实现方法(推荐)
  18. 记 [GXYCTF2019]Ping Ping Ping 1
  19. java实现业务模块的热插拔_如何来实现SpringBoot应用的JPA数据持久化和热插拔
  20. 【vue3 组件生命周期流程 功能】13个生命周期详解

热门文章

  1. 自定义springSecurity3.0 登录后自定义返回页面
  2. Base64与文件(docx)流的加密和解密
  3. 语言 micropython_【雕爷学编程】MicroPython动手做(03)——零基础学MaixPy之开机测试...
  4. mysql报错1517_请教一下 flask+sqlalchemy+mysql 连接错误问题
  5. 转换一个字符串的编码消除乱码
  6. c语言tty,1. 终端_C语言_C语言入门-Linux C编程一站式学习
  7. MyBatis 使用 foreach 批量插入
  8. element UI表格使用cell-style改变单元格样式
  9. C++中对字符串的分割方法
  10. Linux和Windows下使用指定的JDK运行jar包