cp指令用来代码的拷贝
以下由文件编程代码实现
代码演示
#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;int fdDes;char* readbuf=NULL;if(argc!=3){printf("parmar error");exit(-1);}fdSrc=open(argv[1],O_RDWR);int size=lseek(fdSrc,0,SEEK_END);readbuf=(char *)malloc(sizeof(char)*size+8);lseek(fdSrc,0,SEEK_SET);int n_readbuf=read(fdSrc,readbuf,size);fdDes=open(argv[2],O_RDWR|O_CREAT|O_TRUNC,0600);//copy后argv[2]中的原本内容会被覆盖掉int n_write=write(fdDes,readbuf,strlen(readbuf));//write 返回写入字节的长度close(fdSrc);close(fdDes);return 0;
}
// ./a.out demo14.c demo91.c
ps:argc:表示输入的三个参数argv:表示字符串数组argv[0]:表示 ./a.outargv[1]:表示 demo14.cargv[2]:表示 demo91.c其中文件都可以带有自己路径
文件编程练习之配置文件的修改
代码演示
#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("parmar error");exit(-1);//文件退出}fdSrc=open(argv[1],O_RDWR);int size=lseek(fdSrc,0,SEEK_END);readbuf=(char *)malloc(sizeof(char)*size+8);lseek(fdSrc,0,SEEK_SET);int n_read=read(fdSrc,readbuf,size);char *p=strstr(readbuf,"LENG=");//在readbuf中查找字符串,如果找到返回L位置的指针if(p==NULL){printf("find fail\n");exit(-1);}p=p+strlen("LENG=");//指针向后移动到要修改的地方*p='5';//*p=5 可以将数字5写入,但是会乱码,并没有出错,只是我们看不懂lseek(fdSrc,0,SEEK_SET);int n_write=write(fdSrc,readbuf,strlen(readbuf));close(fdSrc);return 0;
}
// ./a.out file1
ps: file1是要修改的配置文件程序中写入要修改的值