实现步骤:
1.打开需要被复制的文件
2.读取该文件的内容
3.打开/创建目标文件
4.将读取的内容写到目标文件中
5.关闭两个文件
代码如下(示例):
#include<stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include<string.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
char *redbuf = NULL;
if(argc!=3){
printf("eorr!\n");
exit(-1);
}
int fdsrc = open(argv[1],O_RDWR);
int size = lseek(fdsrc,0,SEEK_END);
lseek(fdsrc,0,SEEK_SET);
redbuf =(char *) malloc(sizeof(char)*size+1);
read(fdsrc,redbuf,size);
int fddes = open(argv[2],O_RDWR|O_CREAT|O_TRUNC,0600);//O_TRUNC若目标文件有内容
//可以清空内容
write(fddes,redbuf,strlen(redbuf));
close(fdsrc);
close(fddes);
return 0;
}
(例如:./mycp demo1.c new.c)
int main(int argc, char **argv)
argc:代表执行文件个数(argc = 3)
**argv:存放数组的指针:argv[0]:mycp
argv[1]:demo1.c
argv[2]:new.c