Linux系统手动实现一个简单cp功能
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Linux系统手动实现一个简单cp功能,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2145字,纯文字阅读大概需要4分钟。
内容图文
![Linux系统手动实现一个简单cp功能](/upload/InfoBanner/zyjiaocheng/939/3f31fa0df6e448a286f6f61a5395c763.jpg)
Linux系统手动实现一个简单cp功能
??大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客
本文原创为亓官劼,请大家支持原创,部分平台一直在盗取博主的文章!!!
博主目前仅在CSDN中写博客,唯一博客更新的地址为:亓官劼的博客
??文本将来实现一个Linux系统中的一个简单的cp功能命令(本文中的cp功能十分简陋,仅能够实现基本的复制操作)。
??我们这里是使用c语言进行实现的,这里仅是简单的进行一个复制的功能实现和错误的输出。如果打开失败,则输出文件打开错误,否则我们开始读取输入的文件,并且输出到我们的输出文件,如果输出时发生错误,则进行相应的报错。
? 实现的代码为:
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#define COPYMODE 0644
#define BUF 4096
int main(int argc, char *argv[])
{
int in_fd = -1, out_fd = -1;
char n_chars[BUF];
int len = 0;
// 如果打开失败,则报错
if( ( in_fd = open( argv[1], O_RDONLY ) ) == -1 ) {
perror( "file open" );
exit( -1 );
}
if ( ( out_fd = creat( argv[2], COPYMODE ) ) == -1 ) {
perror( "file copy" );
exit( -1 );
}
// 一遍读取,一遍输入
while( ( len = read( in_fd, n_chars, sizeof( n_chars ) ) ) > 0 ) {
if ( write( out_fd, n_chars, len ) != len ) {
printf( "文件:%s发生copy错误\n", argv[2] );
exit( -1 );
}
}
if( len == -1 ) {
printf( "读取%s文件错误\n", argv[1] );
exit( -1 );
}
if( close( in_fd ) == -1 ) {
printf( "文件%s关闭失败\n", argv[1] );
exit( -1 );
}
if( close( out_fd ) == -1 ) {
printf( "文件%s关闭失败\n", argv[2] );
exit( -1 );
}
return 0;
}
??我们将它编译为myCP文件,然后我们将它加入到我们的/usr/local/bin中,我们就可以使用这个命令了。其实这里的复制也已经可以使用我们刚刚写好的这个myCP来实现了,大家可以根据自己的文件位置来修改。我的命令为:myCP /Users/qiguan/ttttttttttt/myCP /usr/local/bin/
??下面我们来进行测试我们的命令,我们输入myCP 第一个文件 第二个文件,然后我们的执行效果为:
我们可以看到我们已经实现了复制的基本功能。
??好了,本期博文就到这里了,博主也是在学习这方面的相关知识中,本文仅为一些简单的实现
??大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客
本文原创为亓官劼,请大家支持原创,部分平台一直在盗取博主的文章!!!
博主目前仅在CSDN中写博客,唯一博客更新的地址为:亓官劼的博客
内容总结
以上是互联网集市为您收集整理的Linux系统手动实现一个简单cp功能全部内容,希望文章能够帮你解决Linux系统手动实现一个简单cp功能所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。