How can I copy a file from one directory to another in c/c++

前端 未结 7 419
闹比i
闹比i 2020-12-17 07:18

I am looking for a simple example on how to copy a file from one directory to another in C. The program should only use cross platform functions that are native to C.

7条回答
  •  无人及你
    2020-12-17 07:54

    Here is a simple untested C program that does what you need:

    #include 
    #include 
    #include 
    #include 
    
    int main(int argn, char * argv[]) {
    
        int src_fd, dst_fd, n, err;
        unsigned char buffer[4096];
        char * src_path, dst_path;
    
        // Assume that the program takes two arguments the source path followed
        // by the destination path.
    
        if (argn != 3) {
            printf("Wrong argument count.\n");
            exit(1);
        }
    
        src_path = argv[1];
        dst_path = argv[2];
    
        src_fd = open(src_path, O_RDONLY);
        dst_fd = open(dst_path, O_CREAT | O_WRONLY);
    
        while (1) {
            err = read(src_fd, buffer, 4096);
            if (err == -1) {
                printf("Error reading file.\n");
                exit(1);
            }
            n = err;
    
            if (n == 0) break;
    
            err = write(dst_fd, buffer, n);
            if (err == -1) {
                printf("Error writing to file.\n");
                exit(1);
            }
        }
    
        close(src_fd);
        close(dst_fd);
    }
    

提交回复
热议问题