实现Linux cp命令的代码
一、main函数的参数
#include <stdio.h>
int main(int argc,char **argv)
{
printf("total params: %d\n",argc);
printf("NO.1 params: %s\n",argv[0]);
printf("NO.2 params: %s\n",argv[1]);
printf("NO.3 params: %s\n",argv[2]);
return 0;
}
argc保存的是命令行参数的数目,而argv是指向个参数的各指针所构成的数组。
二、思路
1.打开src.c
2.读src.c到buf
3.打开/创建des.c
4.将buf写到des.c
5.close des.c 和 src.c
#include <string.h>
#include <stdlib.h>
int main(int argc,char **argv)
{
int fdSrc;
int fdDes;
char *readbuf = NULL;
if(argc != 3){
printf("pararm error \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);
int n_read = read(fdSrc,readbuf,size);
fdDes = open(argv[2],O_RDWR|O_CREAT|O_TRUNC,0600);
int n_write = write (fdDes,readbuf,strlen(readbuf));
printf("\n");
close(fdSrc);
close(fdDes);
return 0;
}
总结
恭喜你,cp指令成功实现。