首页 > 代码库 > 【Linux-c编程】实现简单的cp命令

【Linux-c编程】实现简单的cp命令

 

  1 #define _LARGEFILE_SOURCE          //1-3:定义宏:才能让系统支持大于2GB文件复制操作。

  2 #define _LARGEFILE64_SOURCE
  3 #define _FILE_OFFSET_BITS 64
  4 #include<stdio.h>
  5 #include<string.h>
  6 #include<stdlib.h>
  7 #include<fcntl.h>
  8
  9 int main(int argc,char *argv[])
 10 {
 11         int fd_src,fd_des;
 12         char buf[128];
 13         int num;
 14         if(argc-3)                                                                            //如果参数格式不是 cp  file_src  file_des,则报错退出。
 15         {
 16                 printf("the format must be:cp file_src file_des");
 17                 exit(EXIT_FAILURE);
 18         }
 19
 20         if((fd_src=http://www.mamicode.com/open(argv[1],O_RDONLY))==-1) // 如果文件不存在,则报错退出。
 21         {
 22                 perror("open1");
 23                 exit(EXIT_FAILURE);

             }
 25
 26         if((fd_des=open(argv[2],O_CREAT|O_EXCL|O_WRONLY,0644))==-1)// 以写的方式打开文件,O_EXCl:如果目标文件存在,报错。
 27         {
 28                 perror("open2");
 29                 exit(EXIT_FAILURE);
 30         }
 31
 32         do                                                     
 33         {
 34                 num=read(fd_src,buf,128);              //读源文件
 35                 write(fd_des,buf,num);                // 写入目标文件
 36         }while(num==128);


 37         close(fd_src);
 38         close(fd_des);                                                                  //关闭文件
 39         return 0;
 40 }

 

【Linux-c编程】实现简单的cp命令