Implementación del comando cp de Linux

Comandos CP

Este artículo mostrará el código para implementar el comando cp de Linux


 

Directorio de artículos

 


Prefacio

¿Alguna vez te has preguntado cómo el comando en Linux implementa la función del comando? Aquí te presentaré el código.

 

1. La idea de realizar el comando CP

Para copiar el contenido de un archivo a un archivo existente, o copiar a un archivo recién creado, el primer paso : abrir el archivo que se va a copiar; el segundo paso : copiar el archivo al área de búfer; el tercer paso : abrir y crear un nuevo archivo; Paso 4 : Escriba el contenido del área del búfer en el archivo recién creado; Paso 5 : Cierre el archivo

Segundo, los pasos

1. Presentar la biblioteca

el código se muestra a continuación:

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


 

2. Código para implementar comandos CP

el código se muestra a continuación:

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;
}


 


para resumir

Después de saber cómo se implementan los comandos, ¿tiene curiosidad acerca de funciones como abrir (), leer (), escribir (), etc. Cómo implementan estas funciones estas funciones?

Supongo que te gusta

Origin blog.csdn.net/weixin_49472648/article/details/108891328
Recomendado
Clasificación