#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define DEFAULT_PATH "./config.cfg"
int ProcessAltConfig(char* szConfigKey,char* szConfigValue)
{
/*
*linebuffer:读取文件中的一行存入的缓冲
*buffer1:一行中第一个字段的存入缓冲
*buffer2:一行中第二个字段的存入缓冲
*/
char szLineBuffer[512] = {0};
char szKeyBuffer[512] = {0};
char szValueBuffer[512] = {0};
char szTmpKey[512] = {0};
int nLineLen = 0;
int nLen = 0;
int nResult;
/*
* cc.cfg是文件名,r+代表可以读写文件
*/
FILE *fp = fopen(DEFAULT_PATH, "r+");
if(fp == NULL)
{
printf("open error");
return -1;
}
while(fgets(szLineBuffer, 512, fp))
{
nLineLen = strlen(szLineBuffer);
nLen += nLineLen;
/*
* szKeyBuffer=wireless.1.current_state
* szValueBuffer=1
*/
sscanf(szLineBuffer, "%[^=]=%[^=]", szKeyBuffer,szValueBuffer);
sprintf(szTmpKey,"%s ",szConfigKey);
if(!strcmp(szTmpKey, szKeyBuffer))
{
/*
* 由于已经找到所需要写的位置,所以需要写位置的“头”
*/
nLen -= strlen(szLineBuffer);
/*
* 实现文件位置的偏移,为写文件做准备
*/
nResult = fseek(fp, nLen, SEEK_SET);
if(nResult < 0)
{
perror("fseek");
return -1;
}
memset(szValueBuffer,0,strlen(szValueBuffer));
sprintf(szValueBuffer,"= %s",szConfigValue);
/*strcat(szKeyBuffer, "=");*/
strcat(szKeyBuffer, szValueBuffer);
//printf("%d",strlen(szKeyBuffer));
/*
* 写文件,存入所需的内容
*/
fprintf(fp, "%s", szKeyBuffer);
fclose(fp);
return;
}
}
return 0;
}
int main(int argc, char *argv[])
{
ProcessAltConfig("rx2_fpgz","3");
return EXIT_SUCCESS;
}
配置文件修改
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 转载请注明来源 赖赖的博客 导语 学会如何获取资源和知识,才是学习的基础。 在spring-boot-01中我们简...
- 在终端输入ls --help查看,提示颜色区分文件类型功能被禁用, 使用色彩来区分文件类型的功能已被禁用,默认设置...
- 1.首先进入这个项目如图: 2.我们会发现没有.git文件这是因为.git 文件隐藏了,这里我们就要把隐藏文件打开...