cp命令的作用:读取源文件写到目标文件

具体实现思路:

1.打开源文件,先判断argc==3,argv[0]为可执行程序的名字,argv[1]为源文件,argv[2]为目标文件

2.当源文件存在的时候用O_EXCL进行一次提示

3.当源文件与目标文件都正确打开后,循环读取源文件写入目标文件

4.完成实现后可以用vimdiff  文件A  文件B 可以比较两个文件相同与否

具体实现代码:

  1 #include<stdio.h>                                                           2 #include<stdlib.h>3 #include<unistd.h>4 #include<fcntl.h>5 #include<errno.h>6 #include<string.h>7 int main(int argc,char *argv[])8 {9     if(argc!=3)10     {11         fprintf(stderr,"usage:%s src dst\n",argv[0]);12         exit(1);13     }14     int fd_src=open(argv[1],O_RDONLY);15     if(fd_src==-1)16     {17         perror("open");18         exit(1);19     }20     int fd_dest=open(argv[2],O_WRONLY|O_CREAT|O_EXCL,0644);21     if(fd_dest==-1&&errno==EEXIST)22     {23         printf("recover it?");
24         char choose;25         scanf("%c",&choose);26         if(choose=='y'||choose=='Y')27         {28             fd_dest=open(argv[2],O_WRONLY);29         }30         else31         {32             exit(1);33         }34     }35     while(1)36     {37         char buf[1024]={};38         memset(buf,0x00,sizeof(buf));39         int r=read(fd_src,buf,1024);40         if(r==-1)41         {                                                                   42             perror("read");43             exit(1);44         }45         if(r==0)46         {47             break;48         }49         write(fd_dest,buf,r);50     }51     close(fd_src);52     close(fd_dest);53 }                       

实现Linux下的cp命令相关推荐

  1. linux下使用\cp命令的原因

    2019独角兽企业重金招聘Python工程师标准>>> 有时会看到在拷贝文件的时候习惯使用\cp -rf而不是cp -rf,这两者是有区别的:当使用第一种时系统不会提示是否覆盖,第二 ...

  2. linux下的cp命令

    当遇到如问题时: 是因为将一个目录复制到另一个目录下时使用 -r cp 补充: 示例: 1.将../mary/homework/assign复制到当前目录下: cp ../mary/homework/ ...

  3. linux 关闭防火墙scp功能,在 Linux 下使用 scp 命令

    将文件或文件夹从网络上的一个主机拷贝到另一个主机当中去. here:在 Linux 下使用 scp 命令 摘要: scp 是安全拷贝协议(Secure Copy Protocol)的缩写, scp 是 ...

  4. linux下Vi编辑器命令大全

    linux下Vi编辑器命令大全 /根目录下的文件夹 输入"/",回车 里面有很多文件夹,如:etc,home,lib,mnt等等 etc:存放用户名和密码 home:每个用户有个文 ...

  5. Linux命令删除find,浅谈Linux下通过find命令进行rm文件删除的小技巧

    我们经常会通过find命令进行批量操作,如:批量删除旧文件.批量修改.基于时间的文件统计.基于文件大小的文件统计等,在这些操作当中,由于rm删除操作会导致目录结构变化,如果要通过find结合rm的操作 ...

  6. linux下常用拷贝命令

    cp命令 该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,就如同DOS下的copy命令一样,功能非常强大. 语法: cp [选项] 源文件或目录 目标文件或目录 说明:该命令把指定的源文件复制 ...

  7. linux替换jar包目录,Linux下用jar命令替换war包中的文件【转】

    问题背景:在Linux环境上的weblogic发布war包,有时候只是修改了几个文件,也要上传整个war包,这样很费时间,因此整理了一下Linux环境,更新单个文件的方法. 1.如果要替换的文件直接在 ...

  8. linux cp -r 参数,Linux系统中cp命令的参数及用法详解

    Linux系统中cp命令主要是用来复制文件或者目录.下面由学习啦小编为大家整理了Linux系统中cp命令的参数及用法详解的相关知识,希望对大家有帮助! Linux系统中cp命令的参数及用法详解:参数说 ...

  9. linux下cp复制目录时排除某些目录的方法分享,Linux 下复制(cp)目录时排除一个或者多个目录的方法...

    cp 貌似没有排除目录的功能,可以使用 rsync 命令来实现了,如: [案例] /home/52php目录里面有data目录,data目录里面有 a.b.c.d.e 五个目录,现在要把data目录里 ...

最新文章

  1. 碉堡的小程序:用 Python 制作演示迷宫算法的 gif 动画
  2. OSError: [WinError 126] 找不到指定的模块————Shapely
  3. 分享我设计的iOS项目目录结构
  4. OpenCV:使用OpenCV3随机森林进行统计特征多类分析
  5. 在文件中读取列表功能
  6. ❤️ 爆肝一个月!JAVA零基础入门总结(下)❤️
  7. 指定的参数已超出有效值的范围_整流二极管的特性和重要参数
  8. DreamFactory 第9章 性能注意事项
  9. python老师好的长度_abc和老师好的长度都是3。( )
  10. linux ssh环境,在Linux下ssh 环境的登录 和 文件拷贝
  11. 苹果的廉价机,你也认为“真香”吗?
  12. 总结:计算机组成与设计(硬件/软件接口)-第四章 处理器
  13. abaqus2020软件 Linux版本安装教程 超详细安装教程
  14. Python笔记:数据切片
  15. Python实例之利用h5py库保存数据集
  16. ❤️数据可视化❤️:基于Echarts + GeoJson实现的地图视觉映射散点(气泡)组件【10】 - 黑龙江省
  17. windows下的./ 和 ../
  18. 20189221 2018-2019-2 《密码与安全新技术专题》第六周作业
  19. 接口测试实战| GET/POST 请求区别详解
  20. 怎么使用 button的tag

热门文章

  1. stm32F103采用内部晶振8MHz时钟和外部晶振初始化代码
  2. 人工智能中的核心数学知识体系
  3. mysql SQLSTATE[HY000] [1045] Access denied for user
  4. Python数据可视化(处理天气数据)
  5. 过完这个元宵节 记得换一种方式陪伴你爱的人
  6. 如何在mac eclipse引入win版本eclipse的android项目
  7. 评价问题中的主成分分析(PCA)
  8. 锐捷防火墙RG-WALL 1600-M6600E配置
  9. 清北网计算机入门,NOI2020于8月17日正式开幕!今年哪些竞赛选手被保送清北计算机专业?...
  10. 计算机音乐安顺学院教务网络管理系统,安顺学院教务网络管理系统http://jwxt.asu.edu.cn/jwweb/...