1.4檔案操作之修改程式配置檔案小應用

Six~發表於2020-10-25

現狀:檔案中的寬輸入錯誤,需要進行修改,將15改為5
在這裡插入圖片描述
思路

1.找到 wide
2.wide= 確認位置
3.修改數值
#include <sys/types.h>
#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 *readBuf = NULL;

        if(argc != 2){ //若引數不是三個,就退出程式
                printf("fail !!!\n");
                exit(-1);
        }
        fdSrc = open(argv[1],O_RDWR);//開啟被複制的檔案
        int size = lseek(fdSrc,0,SEEK_END);//通過游標的起始位,計算檔案的大小
        lseek(fdSrc,0,SEEK_SET);//將游標移至到起始位
        readBuf = (char *)malloc(sizeof(char)*size+8);//開闢讀取的空間
        read(fdSrc,readBuf,size);
        
        char *p = strstr(readBuf,"wide=");//查詢
        if(p==NULL){//判斷是否找到,若未找到,退出程式
                printf("not fount\n");
                exit(-1);
        }
        p = p+strlen("wide=");//指標向後偏移
        *p ='5';//修改

        lseek(fdSrc,0,SEEK_SET);//游標放置起始位
        write(fdSrc,readBuf,strlen(readBuf));
        close(fdSrc);
        return 0;
}
~                                   

修改成功後
在這裡插入圖片描述

相關文章