Linux系统编程——文件编程(五)修改配置文件
2021/5/5 7:26:07
本文主要是介绍Linux系统编程——文件编程(五)修改配置文件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
修改配置文件主要运用了对文件的打开和读写的API,同时还用到了一个字符串查找函数(strstr)
strstr函数
头文件
#include <string.h>
函数原型
char *strstr(const char *haystack, const char *needle);
haystack:表示被查找的目标范围
needle:表示要查找的对象
返回值
当在haystack中查找到字符串needle时,函数返回needle在haystack中第一次出现的首地址
对于strlen函数可以参考字符串函数
修改配置文件代码实现
#include <sys/stat.h> #include <fcntl.h> #include <stdio.h> #include <unistd.h> #include <string.h> #include <stdlib.h> int main(int argc,char **argv) //传入要修改的文件 { int fdSrc; //用来放被修改文件的文件描述符 char* Buf = NULL; //存放读取出来的字符串 if(argc != 2){ //需要两个参数 printf("error\n"); exit(-1); } fdSrc = open(argv[1],O_RDWR); //打开要修改的文件 int size = lseek(fdSrc,0,SEEK_END); //计算文件的大小 lseek(fdSrc,0,SEEK_SET); //将光标移动到文件开始位置 Buf = (char *)malloc(sizeof(char) * size); //为缓冲区开辟空间,大小为一个char的大小x 文件大小 int n_read = read(fdSrc,Buf,size); //将文件读到buf中 char *p = strstr(Buf,"LENG = "); //在buf中寻找LENG=字符串 if(p == NULL){ //判断是否找到 printf("NO “LENG = ”\n"); exit(-1); } p = p + strlen("LENG = "); //如果找到了strstr函数返回的是第一次出现LENG=的地址,将地址移动到LENG=的后面 *p = '6'; //现在P指向的地址已经到LENG = 的最后,在将P的内容修改为'6',注意是'6' lseek(fdSrc,0,SEEK_SET); //将光标移动到最前面,因为上面读已经将光标移动到最后面了,如果不移动光标的话会重新打印一遍文件内容 int n_write = write(fdSrc,Buf,strlen(Buf)); //将修改了的文件重新写入到原文件中 close(fdSrc); //关闭文件 return 0; }
编译运行
fileModi文件就是要修改的文件,fileModi文件中原参数为
当运行上面程序后fileModi文件的参数变化
这样就对配置文件进行了修改
如果没有用lseek函数将光标重新定位到文件开始位置的话,会重行写入一遍
这篇关于Linux系统编程——文件编程(五)修改配置文件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23linux 系统宝塔查看网站访问的命令是什么?-icode9专业技术文章分享
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南