首页 > 代码库 > 数据拷贝的实现
数据拷贝的实现
本程序实现数据拷贝。
#include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #define BUFSIZE 4096 int main(int argc,char* argv[]) { if(argc!=1&&argc!=3) { fprintf(stderr,"Invalid argument number\n"); exit(1); } int from,to; int n; char buf[BUFSIZE]; if(argc==1) { from = STDIN_FILENO; to = STDOUT_FILENO; } else { if((from = open(argv[1], O_RDONLY))==-1) { fprintf(stderr,"open %s error\n",argv[1]); exit(2); } if((to = open(argv[2], O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR))==-1) { fprintf(stderr,"open %s error\n",argv[2]); exit(3); } } while ((n = read(from, buf, BUFSIZE)) > 0) { if (write(to, buf, n) != n) { fprintf(stderr, "write error\n"); exit(4); } if (n < 0) { fprintf(stderr, "read error\n"); exit(5); } } close(from); close(to); exit(0); }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。