使用c完成linux的cp功能
步骤
打开文件 open
读取文件 read
再打开一个新的文件 open
写入 write
#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){
//从命令输入两个文件路径 argv相当于一个数组
int fdSrc;
int fdDes;
char *readBuf = NULL;
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);
fdDes = open(argv[2],O_RDWR|O_CREAT|O_TRUNC,0600);//创建一个新的文件
int n_write = write(fdDes,readBuf,strlen(readBuf)); //把内容写入
close(fdSrc);
close(fdDes);
return 0;
}