首页 / LINUX / 实现linux cp命令
实现linux cp命令
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了实现linux cp命令,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1313字,纯文字阅读大概需要2分钟。
内容图文
![实现linux cp命令](/upload/InfoBanner/zyjiaocheng/930/8ee54f2991174e318004832660b35aa6.jpg)
cp src.c(源文件) des.c(目标文件)
一、思路:
1.打开src.c(源文件)
2.把src.c(源文件) 的内容读到buf中
3.打开并创建des.c(目标文件)
4.把buf写到des.c(目标文件)中
5.close 关闭src.c(源文件)和des.c(目标文件)
二、代码实现
(1)先写一个测试demo
argc为参数的个数是int型
argv是数组指针(二级指针)指针的每一项都是一个数组
#include <stdio.h>
int main(int argc,char **argv)
{
printf("totol params:%d\n",argc);
printf("No1. params:%s\n",argv[0]);
printf("No2. params:%s\n",argv[1]);
printf("No3. params:%s\n",argv[2]);
return 0;
}
(2)拷贝文件
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
int main(int argc,char **argv)
{
int fdSrc;//源文件
int fdDes;//目标文件
char *readbuf=NULL;
if(argc != 3)/*判断参数的个数*/
{
printf("pararm error\n");
exit(-1);
}
fdSrc=open(argv[1],O_RDWR);
int size=lseek(fdSrc,0,SEEK_END);
/*把光标从开头定位到文件的尾巴*/
/*读取之前计算文件的大小*/
lseek(fdSrc,0,SEEK_SET);
/*读文件的时候要重新定位*/
readbuf=(char *)malloc(sizeof(char)*size+8);
/*开辟空间*/
int n_read=read(fdSrc,readbuf,size);
/*读取源文件*/
fdDes=open(argv[2],O_RDWR|O_CREAT,0600);
/*打开目标文件*/
int n_write=write(fdDes,readbuf,strlen(readbuf));
/*往目标文件写源文件的内容*/
close(fdSrc);
close(fdDes);
return 0;
}
运行结果:两个文件的内容一致
内容总结
以上是互联网集市为您收集整理的实现linux cp命令全部内容,希望文章能够帮你解决实现linux cp命令所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。