自己编写代码实现liunx平台的cp指令

自己编写代码实现liunx平台的cp指令

使用了liunx平台的相关指令之后,又学习open,read,write这些函数的使用,就来自己实现下cp指令,下面直接上代码。

#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>    //相关头文件
#include <string.h>
#include <stdlib.h>
int main(int argc,char **argv)//设置程序运行时需输入的参数,进而实现cp指令
{
        int fdSrc;
                        //定义两个文件描述符
        int fdDes;

        char *redBuf=NULL;//定义一个字符指针,用来存储需要复制文件中的数据

        if(argc!=3){
                printf("par arm error");
                exit(-1);                       //判断输入的参数是否正确,如果输入不正确,会终止程序,并给出相关提示
                }

        fdSrc=open(argv[1],O_RDWR);//获取需复制文件的描述符

        int size=lseek(fdSrc,0,SEEK_END);
                                        //移动光标,防止复制的数据重复
        lseek(fdSrc,0,SEEK_SET);

        redBuf=malloc(sizeof(char)*size+8);//给定义的指针变量申请空间,防止出现段错误

        int n_read=read(fdSrc,redBuf,size);//将要复制文件的数据存入redBuf中

        fdDes=open(argv[2],O_RDWR|O_CREAT|O_TRUNC,0600);
                                                        //将数据写入需要复制后的文件
        int n_write=write(fdDes,redBuf,strlen(redBuf));

        close(fdSrc);
                        //关闭两个文件,防止出现问题
        close(fdDes);

        return 0;
}

来看看代码运行的效果:
在这里插入图片描述
首先通过编译获得可执行文件mycp,然后执行mycp,成功将cpc.c的代码复制到wencai.c里面
在这里插入图片描述

大家也可以去试一下实现其他的指令,基本都是依靠open,read,write三个函数来实现的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值