第一种方法:例如 linux 下的系统调用

#include <stdio.h>
#include <dirent.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>char buff[1024];
int len;
int main(int argc, char const *argv[])
{char const *src_path = argv[1];char const *des_path = argv[2];int fd, fd2;fd = open(src_path, O_RDWR | O_CREAT);fd2 = open(des_path, O_RDWR | O_CREAT);while (len = read(fd, buff, 1024)){write(fd2, buff, len);}close(fd);close(fd2);return 0;
}

这里主要 用到的函数是 open,read,write

其中open 函数:

第一个参数为要打开文件的路径,第二个参数是功能flag,O_RDWR表示以读写方式打开文件,O_CREAT表示如果文件不存在则创建

返回一个文件描述符,表示打开了的文件

其中 read 函数:

第一个参数是一个文件描述符,表示:从该文件描述符表示的文件读取数据

第二个参数是把从文件读到的信息放在一个缓冲数组中

第三个参数是读一次读多少字节

其中 write 函数:

第一个参数,是把数据写到哪里(写到哪个文件描述符中)

第二个参数:把缓冲数组中的数据写到文件描述符中

第三个参数:表示一次写多少字节

注意:最好向上面代码那样用一个while循环来读写数据,这样的话,read 中的第三个参数就不用设置成太大,因为他会把数据全读完才退出循环

第二种方法:用文件流

#include <stdio.h>
#include <dirent.h>
#include <stdlib.h>
#include <string.h>char buff[1024];
int len;
int main(int argc, char const *argv[])
{FILE *in, *out;char const * src_path = argv[1];    //要被拷贝的文件路径char const * des_path = argv[2];    //拷贝的文件放在哪里(路径)in    = fopen(argv[1], "r+");out = fopen(argv[2], "w+");while (len = fread(buff, 1, sizeof(buff), in)){fwrite(buff, 1, len, out);}pclose(in);pclose(out);return 0;
}

两种方法其实有异曲同工之妙,第一种方法的文件描述符 = 第二种方法的文件流指针 in 和 out。

linux c 复制拷贝文件相关推荐

  1. linux scp拷文件夹,linux scp远程拷贝文件及文件夹

    linux scp远程拷贝文件及文件夹 1.拷贝本机/home/administrator/test整个目录至远程主机192.168.1.100的/root目录下 复制代码 代码如下: scp -r ...

  2. linux系统间拷贝文件,Linux系统下不同机器之间拷贝文件的方法

    在Linux系统下,不同机器上实现文件拷贝 一.将本地文件拷贝到远程机器: scp /home/administrator/news.txt root@192.168.6.129:/etc/squid ...

  3. Mac不能复制拷贝文件到U盘?看这里就对了!

    2019独角兽企业重金招聘Python工程师标准>>> 一般正常情况下 我们在使用磁盘时可以进行存储.删除.建立文件等操作 但是为什么Mac不能复制拷贝文件到U盘呢? 小编根据出现的 ...

  4. Mac不能复制拷贝文件到U盘怎么办

    一般正常情况下,我们在使用磁盘时可以进行存储.删除.建立文件等操作,但是为什么Mac不能复制拷贝文件到U盘呢?小编根据出现的情况总结出来了几种可能性,同时给出大家相应的解决方法. 一.磁盘不能正常连接 ...

  5. 运维之道 | Centos7 移动硬盘挂载至Linux、并拷贝文件

    Centos7 移动硬盘挂载至Linux.并拷贝文件 一.安装ntfs文件系统格式 1.下载ntfs格式的软件包: [root@localhost ~]# wget https://tuxera.co ...

  6. win 复制linux文件命令行,windows与Linux间远程拷贝文件(pscp命令)

    (一)上传 1.开始→运行→cmd进入到dos模式 输入以下命令 pscp D:\java\apache-tomcat-5.5.27\webapps\szfdc.rar dev@192.168.68. ...

  7. xcopy远程linux复制,window下批处理操作:从Linux机器下拷贝文件

    文件名称:test.batset THIS_BAT_PATH=%~dp0 cd %THIS_BAT_PATH% rd /s /q %SDV_LLT_PATH% & md %SDV_LLT_PA ...

  8. linux带路径拷贝文件夹,带有路径的Linux复制文件

    最近sh 拷贝文件夹,需要在成千上万的3至4级目录中找到所有sh脚本文件并进行备份. 在备份过程中,必须维护sh脚本文件所在的目录结构. 您要专门编写一个shell吗?太麻烦了sh 拷贝文件夹,我之前 ...

  9. Linux cp命令 拷贝文件

    版权声明:本文为博主原创文章,未经博主允许不得转载. Linux cp命令拷贝命令非常实用,cp命令可以将指定路径下的文件(目录)拷贝到(成)另一文件或目录中,相当于DOS下COPY和XCOPY命令. ...

最新文章

  1. 自保护、人机互动柔性织物传感器研究取得进展
  2. 未来,机器人帮你盖房子
  3. [knownledge][latex] LaTex入门
  4. 云炬随笔20211012(2)
  5. (转载)Shutter 0.90 发布 – BUG修复和增强
  6. CSS引入CSS文件不生效 搞得很恼火
  7. 全国计算机等级考试题库二级C操作题100套(第63套)
  8. WIN7开启WIFI
  9. 不重叠的线段(51Nod-1133)
  10. 计算机id不同于MAC,Gurman:Mac上的Face ID将在几年内出现
  11. 网吧无盘服务器进u盘启动,利用U盘启动在网吧免费上网
  12. 数据分析师的薪资怎么样?
  13. 用户画像、用户分群、用户分层,到底有啥区别?
  14. 华擎主板设置来电开机_华擎主板BIOS文字说明
  15. 推荐一个制作ios图标的网站
  16. 【Database-02】达梦数据库 - DM Manager管理工具安装
  17. Ubuntu 7.04--桌面
  18. 【广告投放】名称概念
  19. Gif动图怎么改变大小?手把手教你在线修改gif大小
  20. ZOJ3864:Quiz for EXO-L(BFS)

热门文章

  1. pip install 报错:Versioning for this project requires either an sdist tarball, ...
  2. 5G NGC — 关键技术 — R15 SBA
  3. SecureCRT自动化脚本
  4. Altium Designer修改3D视图时PCB板的颜色
  5. Java对象的创建、内存布局和访问定位
  6. C语言实现的Web服务器(转-kungstriving)
  7. hihoCoder1040 矩形判断
  8. java9系列(八)Multi-Release JAR Files
  9. BZOJ-3211-花神游历各国(线段树)
  10. 蓝牙Bluetooth技术小知识