首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

求教linux停用c操作文本

2013-09-22 
求教linux下用c操作文本我需要做一件事情就是在linux下的一个文本。比如1.txt,然后在1.txt中寻找到eth0的ip

求教linux下用c操作文本
我需要做一件事情就是在linux下的一个文本。比如1.txt,然后在1.txt中寻找到eth0的ip地址为192.168.0.1,我需要用c来改变我写入的。比如我需要把192.168.0.1替换为192.168.0.155等。
求教了。。。
大侠们。
阿门。。
我的联系方式:602810337
[解决办法]
读取
FILE *fp=fopen( "1.txt", "r");
if(fp==NULL)
{
Chat::sendInfo(user, Cmd::MESSAGE_INFO_GAME, "打开文件失败");
return true;
}
fseek(fp,0,SEEK_END);
DWORD size=ftell(fp);
char content[MAX_BUFSIZE];
bzero(content,sizeof(content));
fseek(fp,0,SEEK_SET);
if (fread(content,1,size,fp)!=size)
{
Chat::sendInfo(user, Cmd::MESSAGE_INFO_GAME, "读取文件失败");
fclose(fp);
return true;
}

修改
char content2[MAX_BUFSIZE];
bzero(content2,sizeof(content2));
char* p2 = strstr(content,"eth0");//找到需要改变ip的行
char* p3 = strstr(p2,"address");
char* p4 = strstr(p2,"\n");
strncpy(content2,content,p3-content);
strcat(content2,"address 192.168.0.155\n");
strcat(content2,p4+1);
int len2 = strlen(content2)+1;
写入
fseek(fp,0,SEEK_SET);
fwrite(content2, len2, 1, fp);
fclose(fp);
[解决办法]
FILE *fp=fopen( "1.txt", "r+"); 不是“r”

热点排行