linux实现cp拷贝命令的思路和源码
1.思路:
命令参数样式: cp src.c des.c
argv[0] argv[1] argv[2]
(1).C语言参数。 int argc(参数个数)、 char** argv
(2)编程思路:
0.判断参数
1.打开源文件src
2.读取源src到buf
3.打开目标des
4将buf写入目标des
5.关闭src、关闭des
2编程实现源码:
#include<stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include<stdlib.h>
int main(int argc,char** argv)
{int fdSrc;int fdDes;char *readbuf=NULL;if(argc!=3){printf("can shu cuo wu!\n");exit(-1);}fdSrc=open(argv[1],O_RDWR); //open srcif(fdSrc==-1){printf("src open fail\n");}int size=lseek(fdSrc,0,SEEK_END); //jisuan src sizelseek(fdSrc,0,SEEK_SET);readbuf=(char *)malloc(sizeof(char)*size+6);int nread=read(fdSrc,readbuf,size); //read srcif(nread==-1){printf("read fail\n");}fdDes=open(argv[2],O_RDWR|O_CREAT|O_TRUNC,0600); //open desif(fdDes==-1){printf(" oepn Des fail\n");}int nwrite=write(fdDes,readbuf,size); //read buf to desif(nwrite==-1){printf("write to des fail\n");}close(fdSrc);close(fdDes);return 0;
}
3实现结果:```c
CLC@Embed_Learn:~/LINUX/wenJian$ gcc cp.c -o mycp
CLC@Embed_Learn:~/LINUX/wenJian$ ./mycp demo2.c cp2.c
CLC@Embed_Learn:~/LINUX/wenJian$ ls
a.out argv[2] cp2.c cp.c demo1.c demo2.c mycp txt1
CLC@Embed_Learn:~/LINUX/wenJian$ vi cp2.c
linux实现cp拷贝命令的思路和源码相关推荐
- Zxing生成二维码思路和源码解析
Zxing生成二维码思路和源码解析 本博文是一篇介绍google zxing包生成二维码的思路和它的源码的文章. 一.引入 如何调用zxing的代码生成一个二维码呢?主要的函数只有一个,如下所示: B ...
- 从 json 文件到炫酷动画 - Lottie 实现思路和源码分析
Lottie是最近Airbnb开源的动画项目,支持Android.iOS.ReactNaitve三个平台,相关背景介绍可以参考之前的文章Airbnb开源炫酷动画库Lottie(译)-看看Airbnb的 ...
- android lottie字体json,从json文件到炫酷动画-Lottie实现思路和源码分析
从json文件到炫酷动画-Lottie实现思路和源码分析,Lottie是最近Airbnb开源的动画项目,支持Android.iOS.ReactNaitve三个平台,本文分析主要Lottie把json文 ...
- 购物车及商品php代码_php实现商城购物车的思路和源码分析
本文介绍一个php实现的购物车代码,功能实现完整,具有一定的参考价值 这里我们为你提供个简单的php购物车代码,从增加购物产品与发生购买了,在商城开发中,这个功能是少不了的 具体分析如下: 对购物车里 ...
- linux下cp -b,Linux下cp的命令解释
今天带领 各位看官,学习一下cp的命令,一般看到cp命令会一个反应是拷贝,相当于windows下的复制.其实在真正的实际应用中,避免"XXX攻城狮"们在修改重要文件出现改坏文件的情 ...
- linux之cp/scp命令+scp命令详解---远程拷贝
名称:cp 使用权限:所有使用者 使用方式: cp [options] source dest cp [options] source... directory 说明:将一个档案拷贝至另一档案,或将数 ...
- linux之cp/scp命令+scp命令详解
名称:cp 使用权限:所有使用者 使用方式: cp [options] source dest cp [options] source... directory 说明:将一个档案拷贝至另一档案,或将数 ...
- linux下常用拷贝命令
cp命令 该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,就如同DOS下的copy命令一样,功能非常强大. 语法: cp [选项] 源文件或目录 目标文件或目录 说明:该命令把指定的源文件复制 ...
- linux关闭交互模式,linux – 关闭cp(copy)命令的交互模式(cp:overwrite?)
推荐文章 更新源的方法 提前保存一下原来源 sudo cp sources.list sources.list.bak 换源命令: sudo gedit /etc/apt/sources.list 或 ...
最新文章
- python视频口碑佳_从万众期待到口碑扑街!用Python来分析一下大家对唐探3的评论...
- android java 回调方法接口
- matlab 读取文件的精度,读取数据文件精度问题!真心求大神赐教 - 程序语言 - 小木虫 - 学术 科研 互动社区...
- Dotfuscator Professional Edition 4.1
- 交换机芯片笔记2.1
- 新手怎么用word制作表格
- 专升本第七部分 计算机网络基础与网页设计
- 微信 css area,微信小程序--手写一个地区选择器(多级联动)
- 关于华硕主板的图像输出设置
- 通用技术机械图尺寸标注高考必看知识点
- 云服务器流量是什么东西_云服务器流量最大是多少?需要多少带宽?
- bigwig归一化方式详解
- 0211书架的制作过程(使用3DsMAX2016)
- 浔阳江头夜送客,枫叶荻花秋瑟瑟——python标准输入、标准输出和注释
- 全球与中国涂料和油墨用丙烯酸树脂市场发展规划展望及未来需求预测报告2021年版
- web自动化测试笔记
- Go语言学习史诗级教程-带你领略GoLang语言新世界
- 电力系统OMS服务器死机,浪潮TS850支撑山东电力OMS 直面小型机竞争
- HDU - 4489 The King’s Ups and Downs(dp)
- 2010年11月27日~