我是靠谱客的博主 可靠小蚂蚁,最近开发中收集的这篇文章主要介绍动手实现linux中的cp命令(可自行拓展),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我们在学习系统编程的时候,一定会有这样的经历,让你动手实现一个简单的cp命令,也就是拷贝相应的文件到对应的目录,或者说是复制吧,当然,实现非常的简单,我们来看看源码吧:

#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
int main(int argc ,char *argv[])
{
if(argc != 3)
{
fprintf(stderr , "input argument errorn");
return -1 ;
}
int
src_fd ;
int
dest_fd ;
src_fd = open(argv[1] , O_RDONLY);
if(-1 == src_fd)
{
perror("mycy srcfile error");
return -2 ;
}
char ch ;
dest_fd = open(argv[2] , O_WRONLY | O_CREAT | O_EXCL
, 0777);
if(dest_fd < 0)
{
//文件存在,判断是否覆盖
printf("Over write ? Y/Nn");
ch = getchar();
if(ch == 'Y')
{
close(dest_fd);
dest_fd = open(argv[2] , O_WRONLY | O_TRUNC);
}else
{
return
0 ;
}
}
//文件不存在,直接创建成功
char buffer[10] = {0} ;
int ret ;
while(1)
{
ret = read(src_fd , buffer , 10);
write(dest_fd , buffer , ret);
if(ret != 10)
break;
}
close(dest_fd);
close(src_fd);
return 0 ;
}


最后

以上就是可靠小蚂蚁为你收集整理的动手实现linux中的cp命令(可自行拓展)的全部内容,希望文章能够帮你解决动手实现linux中的cp命令(可自行拓展)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部