linux c 复制拷贝文件
第一种方法:例如 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 复制拷贝文件相关推荐
- linux scp拷文件夹,linux scp远程拷贝文件及文件夹
linux scp远程拷贝文件及文件夹 1.拷贝本机/home/administrator/test整个目录至远程主机192.168.1.100的/root目录下 复制代码 代码如下: scp -r ...
- linux系统间拷贝文件,Linux系统下不同机器之间拷贝文件的方法
在Linux系统下,不同机器上实现文件拷贝 一.将本地文件拷贝到远程机器: scp /home/administrator/news.txt root@192.168.6.129:/etc/squid ...
- Mac不能复制拷贝文件到U盘?看这里就对了!
2019独角兽企业重金招聘Python工程师标准>>> 一般正常情况下 我们在使用磁盘时可以进行存储.删除.建立文件等操作 但是为什么Mac不能复制拷贝文件到U盘呢? 小编根据出现的 ...
- Mac不能复制拷贝文件到U盘怎么办
一般正常情况下,我们在使用磁盘时可以进行存储.删除.建立文件等操作,但是为什么Mac不能复制拷贝文件到U盘呢?小编根据出现的情况总结出来了几种可能性,同时给出大家相应的解决方法. 一.磁盘不能正常连接 ...
- 运维之道 | Centos7 移动硬盘挂载至Linux、并拷贝文件
Centos7 移动硬盘挂载至Linux.并拷贝文件 一.安装ntfs文件系统格式 1.下载ntfs格式的软件包: [root@localhost ~]# wget https://tuxera.co ...
- win 复制linux文件命令行,windows与Linux间远程拷贝文件(pscp命令)
(一)上传 1.开始→运行→cmd进入到dos模式 输入以下命令 pscp D:\java\apache-tomcat-5.5.27\webapps\szfdc.rar dev@192.168.68. ...
- xcopy远程linux复制,window下批处理操作:从Linux机器下拷贝文件
文件名称:test.batset THIS_BAT_PATH=%~dp0 cd %THIS_BAT_PATH% rd /s /q %SDV_LLT_PATH% & md %SDV_LLT_PA ...
- linux带路径拷贝文件夹,带有路径的Linux复制文件
最近sh 拷贝文件夹,需要在成千上万的3至4级目录中找到所有sh脚本文件并进行备份. 在备份过程中,必须维护sh脚本文件所在的目录结构. 您要专门编写一个shell吗?太麻烦了sh 拷贝文件夹,我之前 ...
- Linux cp命令 拷贝文件
版权声明:本文为博主原创文章,未经博主允许不得转载. Linux cp命令拷贝命令非常实用,cp命令可以将指定路径下的文件(目录)拷贝到(成)另一文件或目录中,相当于DOS下COPY和XCOPY命令. ...
最新文章
- 自保护、人机互动柔性织物传感器研究取得进展
- 未来,机器人帮你盖房子
- [knownledge][latex] LaTex入门
- 云炬随笔20211012(2)
- (转载)Shutter 0.90 发布 – BUG修复和增强
- CSS引入CSS文件不生效 搞得很恼火
- 全国计算机等级考试题库二级C操作题100套(第63套)
- WIN7开启WIFI
- 不重叠的线段(51Nod-1133)
- 计算机id不同于MAC,Gurman:Mac上的Face ID将在几年内出现
- 网吧无盘服务器进u盘启动,利用U盘启动在网吧免费上网
- 数据分析师的薪资怎么样?
- 用户画像、用户分群、用户分层,到底有啥区别?
- 华擎主板设置来电开机_华擎主板BIOS文字说明
- 推荐一个制作ios图标的网站
- 【Database-02】达梦数据库 - DM Manager管理工具安装
- Ubuntu 7.04--桌面
- 【广告投放】名称概念
- Gif动图怎么改变大小?手把手教你在线修改gif大小
- ZOJ3864:Quiz for EXO-L(BFS)
热门文章
- pip install 报错:Versioning for this project requires either an sdist tarball, ...
- 5G NGC — 关键技术 — R15 SBA
- SecureCRT自动化脚本
- Altium Designer修改3D视图时PCB板的颜色
- Java对象的创建、内存布局和访问定位
- C语言实现的Web服务器(转-kungstriving)
- hihoCoder1040 矩形判断
- java9系列(八)Multi-Release JAR Files
- BZOJ-3211-花神游历各国(线段树)
- 蓝牙Bluetooth技术小知识