实现Linux下的cp命令
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命令相关推荐
- linux下使用\cp命令的原因
2019独角兽企业重金招聘Python工程师标准>>> 有时会看到在拷贝文件的时候习惯使用\cp -rf而不是cp -rf,这两者是有区别的:当使用第一种时系统不会提示是否覆盖,第二 ...
- linux下的cp命令
当遇到如问题时: 是因为将一个目录复制到另一个目录下时使用 -r cp 补充: 示例: 1.将../mary/homework/assign复制到当前目录下: cp ../mary/homework/ ...
- linux 关闭防火墙scp功能,在 Linux 下使用 scp 命令
将文件或文件夹从网络上的一个主机拷贝到另一个主机当中去. here:在 Linux 下使用 scp 命令 摘要: scp 是安全拷贝协议(Secure Copy Protocol)的缩写, scp 是 ...
- linux下Vi编辑器命令大全
linux下Vi编辑器命令大全 /根目录下的文件夹 输入"/",回车 里面有很多文件夹,如:etc,home,lib,mnt等等 etc:存放用户名和密码 home:每个用户有个文 ...
- Linux命令删除find,浅谈Linux下通过find命令进行rm文件删除的小技巧
我们经常会通过find命令进行批量操作,如:批量删除旧文件.批量修改.基于时间的文件统计.基于文件大小的文件统计等,在这些操作当中,由于rm删除操作会导致目录结构变化,如果要通过find结合rm的操作 ...
- linux下常用拷贝命令
cp命令 该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,就如同DOS下的copy命令一样,功能非常强大. 语法: cp [选项] 源文件或目录 目标文件或目录 说明:该命令把指定的源文件复制 ...
- linux替换jar包目录,Linux下用jar命令替换war包中的文件【转】
问题背景:在Linux环境上的weblogic发布war包,有时候只是修改了几个文件,也要上传整个war包,这样很费时间,因此整理了一下Linux环境,更新单个文件的方法. 1.如果要替换的文件直接在 ...
- linux cp -r 参数,Linux系统中cp命令的参数及用法详解
Linux系统中cp命令主要是用来复制文件或者目录.下面由学习啦小编为大家整理了Linux系统中cp命令的参数及用法详解的相关知识,希望对大家有帮助! Linux系统中cp命令的参数及用法详解:参数说 ...
- linux下cp复制目录时排除某些目录的方法分享,Linux 下复制(cp)目录时排除一个或者多个目录的方法...
cp 貌似没有排除目录的功能,可以使用 rsync 命令来实现了,如: [案例] /home/52php目录里面有data目录,data目录里面有 a.b.c.d.e 五个目录,现在要把data目录里 ...
最新文章
- 碉堡的小程序:用 Python 制作演示迷宫算法的 gif 动画
- OSError: [WinError 126] 找不到指定的模块————Shapely
- 分享我设计的iOS项目目录结构
- OpenCV:使用OpenCV3随机森林进行统计特征多类分析
- 在文件中读取列表功能
- ❤️ 爆肝一个月!JAVA零基础入门总结(下)❤️
- 指定的参数已超出有效值的范围_整流二极管的特性和重要参数
- DreamFactory 第9章 性能注意事项
- python老师好的长度_abc和老师好的长度都是3。( )
- linux ssh环境,在Linux下ssh 环境的登录 和 文件拷贝
- 苹果的廉价机,你也认为“真香”吗?
- 总结:计算机组成与设计(硬件/软件接口)-第四章 处理器
- abaqus2020软件 Linux版本安装教程 超详细安装教程
- Python笔记:数据切片
- Python实例之利用h5py库保存数据集
- ❤️数据可视化❤️:基于Echarts + GeoJson实现的地图视觉映射散点(气泡)组件【10】 - 黑龙江省
- windows下的./ 和 ../
- 20189221 2018-2019-2 《密码与安全新技术专题》第六周作业
- 接口测试实战| GET/POST 请求区别详解
- 怎么使用 button的tag
热门文章
- stm32F103采用内部晶振8MHz时钟和外部晶振初始化代码
- 人工智能中的核心数学知识体系
- mysql SQLSTATE[HY000] [1045] Access denied for user
- Python数据可视化(处理天气数据)
- 过完这个元宵节 记得换一种方式陪伴你爱的人
- 如何在mac eclipse引入win版本eclipse的android项目
- 评价问题中的主成分分析(PCA)
- 锐捷防火墙RG-WALL 1600-M6600E配置
- 清北网计算机入门,NOI2020于8月17日正式开幕!今年哪些竞赛选手被保送清北计算机专业?...
- 计算机音乐安顺学院教务网络管理系统,安顺学院教务网络管理系统http://jwxt.asu.edu.cn/jwweb/...