如何在linux下用c编程实现文件的复制
1个回答
2015-05-31 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:117538
获赞数:517176
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。
向TA提问 私信TA
关注
展开全部
#include<stdio.h> #include<unistd.h> #include<sys/stat.h> #include<sys/types.h> #include<fcntl.h>
int main(int argc,char **argv) { if(argc<3)//参数少于3,给出提示并退出 {
printf("请按如下格式运行!\n"); printf("./a.out [原始图片] [目标图片]\n");
return 0;
}
int fd1 = open(argv[1],O_RDONLY);//只读方式打开源文件 if(-1 == fd1) { perror("打开文件失败");
return 0;
} int fd2 = open(argv[2],O_RDWR|O_CREAT|O_TRUNC,0666);//读写方式打开文件,有则清空,没有则创建 char buf[100]={0}; int res;
while(res = read(fd1,buf,sizeof(buf)))//从源文件读出 {
write(fd2,buf,res);//写入到目标文件
}
close(fd1);//关闭文件 close(fd2); return 0;
}
int main(int argc,char **argv) { if(argc<3)//参数少于3,给出提示并退出 {
printf("请按如下格式运行!\n"); printf("./a.out [原始图片] [目标图片]\n");
return 0;
}
int fd1 = open(argv[1],O_RDONLY);//只读方式打开源文件 if(-1 == fd1) { perror("打开文件失败");
return 0;
} int fd2 = open(argv[2],O_RDWR|O_CREAT|O_TRUNC,0666);//读写方式打开文件,有则清空,没有则创建 char buf[100]={0}; int res;
while(res = read(fd1,buf,sizeof(buf)))//从源文件读出 {
write(fd2,buf,res);//写入到目标文件
}
close(fd1);//关闭文件 close(fd2); return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询