Linux c/c++之文件拷贝

简介: 这篇文章介绍了在Linux环境下使用C/C++进行文件拷贝的两种方法:一种是通过system()函数调用命令行命令cp来拷贝文件,另一种是通过读写文件的方式进行文件拷贝。

Linux c/c++之文件拷贝

命令方式进行文件拷贝

#直接使用system()函数通过命令的方式拷贝文件
#cp  路径+旧文件名  路径+新文件名
//文件拷贝(直接使用命令方式拷贝)
#include <stdio.h>
#include <stdlib.h>

int main(int argc,char* argv[]){
    char buff[256] = {0};
    sprintf(buff,"cp %s %s",argv[1],argv[2]);
    system(buff);

    return 0;
}

在这里插入图片描述
在这里插入图片描述

文件操作方式进行文件拷贝

使用读写文件的方式将文件拷贝到指定位置

//文件拷贝(以文件操作的方式拷贝)
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdlib.h>

int main(int argc,char* argv[]){
    //打开文件
    int fdStr = open(argv[1],O_RDONLY,0666);  //原始文件
    if(-1 == fdStr)
        printf("文件打开失败:%m\n"),exit(-1);
    printf("文件打开成功!\n");

    int fdDst = open(argv[2],O_WRONLY | O_CREAT,0666);  //目标文件
    if(-1 == fdDst)
        printf("文件创建失败:%m\n"),exit(-1);
    printf("文件创建成功!\n");

    //文件复制
    int r;
    char buff[1024] = {0};
    while(1){
        r = read(fdStr,buff,1024);
        if(r > 0){
            write(fdDst,buff,r);
        }else{
            break;
        }
    }
    //文件关闭
    close(fdStr);
    close(fdDst);

    return 0;
}

在这里插入图片描述

相关文章
|
4月前
|
网络协议 安全 Linux
Linux C/C++之IO多路复用(select)
这篇文章主要介绍了TCP的三次握手和四次挥手过程,TCP与UDP的区别,以及如何使用select函数实现IO多路复用,包括服务器监听多个客户端连接和简单聊天室场景的应用示例。
114 0
|
4月前
|
存储 Linux C语言
Linux C/C++之IO多路复用(aio)
这篇文章介绍了Linux中IO多路复用技术epoll和异步IO技术aio的区别、执行过程、编程模型以及具体的编程实现方式。
167 1
Linux C/C++之IO多路复用(aio)
|
4月前
|
资源调度 Linux 调度
Linux c/c++之进程基础
这篇文章主要介绍了Linux下C/C++进程的基本概念、组成、模式、运行和状态,以及如何使用系统调用创建和管理进程。
71 0
|
4月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
1021 3
|
4月前
|
资源调度 Linux 调度
Linux C/C++之线程基础
这篇文章详细介绍了Linux下C/C++线程的基本概念、创建和管理线程的方法,以及线程同步的各种机制,并通过实例代码展示了线程同步技术的应用。
59 0
Linux C/C++之线程基础
|
4月前
|
Linux C++
Linux C/C++之IO多路复用(poll,epoll)
这篇文章详细介绍了Linux下C/C++编程中IO多路复用的两种机制:poll和epoll,包括它们的比较、编程模型、函数原型以及如何使用这些机制实现服务器端和客户端之间的多个连接。
97 0
Linux C/C++之IO多路复用(poll,epoll)
|
4月前
|
网络协议 Linux 网络性能优化
Linux C/C++之TCP / UDP通信
这篇文章详细介绍了Linux下C/C++语言实现TCP和UDP通信的方法,包括网络基础、通信模型、编程示例以及TCP和UDP的优缺点比较。
100 0
Linux C/C++之TCP / UDP通信
|
4月前
|
消息中间件 Linux API
Linux c/c++之IPC进程间通信
这篇文章详细介绍了Linux下C/C++进程间通信(IPC)的三种主要技术:共享内存、消息队列和信号量,包括它们的编程模型、API函数原型、优势与缺点,并通过示例代码展示了它们的创建、使用和管理方法。
66 0
Linux c/c++之IPC进程间通信
|
4月前
|
Linux C++
Linux c/c++进程间通信(1)
这篇文章介绍了Linux下C/C++进程间通信的几种方式,包括普通文件、文件映射虚拟内存、管道通信(FIFO),并提供了示例代码和标准输入输出设备的应用。
51 0
Linux c/c++进程间通信(1)
|
4月前
|
Linux C++
Linux c/c++之进程的创建
这篇文章介绍了在Linux环境下使用C/C++创建进程的三种方式:system函数、fork函数以及exec族函数,并展示了它们的代码示例和运行结果。
91 0
Linux c/c++之进程的创建