【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=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 }

 

转载于:https://www.cnblogs.com/lijiayu/p/5886264.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值