Linux cp命令的实现

CP命令

该文章将会展示实现Linux cp 命令的代码


文章目录


前言

你是否有过疑问 Linux 里面的命令究竟是如何实现该命令的功能的,在这里我将从代码方面介绍。

一、实现 CP 命令的构想

将一个文件的内容拷贝到一个已有的文件中,或者拷贝到一个新建的文件中,第一步:打开待被拷贝的文件;第二步:将该文件拷贝到缓存区;第三步:打开并新建一个文件;第四步:缓存区里的内容写到新建的文件中;第五步:关闭文件

二、步骤

1.引入库

代码如下:

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>


 

2.实现  CP 命令的代码

代码如下:

int main(int argc,char **argv)
{
        int fdSrc;
        int fdDes;
        char *readBuf = NULL;

    //判断使用该命令的方式是否正确 
        if(argc != 3){
                printf("param error\n");
                exit(-1);
        }

    //第一步:打开待复制的文件
        fdSrc = open(argv[1],O_RDWR);
        int size = lseek(fdSrc,0,SEEK_END);
        lseek(fdSrc,0,SEEK_SET);    //将光标移动待文件开头
    
    //第二步:将待复制的文件读取到缓存区 readBuf
        readBuf = (char *)malloc(sizeof(char)*size+8);
        int n_read = read(fdSrc,readBuf,size);

    //第三步:打开或者新创建一个文件
        fdDes = open(argv[2],O_RDWR|O_CREAT|O_TRUNC,0600);
    
    //第四步:将缓存区里的内容写入到新打开或者创建的文件中
        int n_write = write(fdDes,readBuf,size);

    //第五步:关闭文件,以达到保护文件的作用
        close(fdSrc);
        close(fdDes);
        return 0;
}


 


总结

知道命令的实现方式以后,你是否对如 open(), read(), write() 等函数函数感到好奇,这些函数是如何实现这些功能的呢?

猜你喜欢

转载自blog.csdn.net/weixin_49472648/article/details/108891328