简单的copy程序
2011-08-14 19:44
537 查看
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#define BUFFSIZE 1024
int main(int argc,char *argv[])
{
int source_fd,target_fd,num;
char buf[BUFFSIZE];
if(argc != 3)
{
fprintf(stderr,"Usage:copy sourcefile targetfile\n");
exit(1);
}
if((source_fd = open(argv[1],O_RDONLY,S_IRWXU)) == -1)
{
fprintf(stderr,"sourcefile open failed!\n");
exit(2);
}
printf("%s\n",argv[1]);
if((target_fd = open(argv[2],O_WRONLY | O_CREAT | O_EXCL,S_IRWXU)) == -1)
{
if(errno = EEXIST)
{
fprintf(stderr,"the targetfile is exist!\n");
exit(3);
}
else
{
fprintf(stderr,"targetfile open failed!\n");
exit(3);
}
}
while((num = read(source_fd,buf,BUFFSIZE)) > 0)
{
if(write(target_fd,buf,num) != num)
{
fprintf(stderr,"targetfile write error!\n");
exit(4);
}
}
close(source_fd);
close(target_fd);
return 0;
}
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#define BUFFSIZE 1024
int main(int argc,char *argv[])
{
int source_fd,target_fd,num;
char buf[BUFFSIZE];
if(argc != 3)
{
fprintf(stderr,"Usage:copy sourcefile targetfile\n");
exit(1);
}
if((source_fd = open(argv[1],O_RDONLY,S_IRWXU)) == -1)
{
fprintf(stderr,"sourcefile open failed!\n");
exit(2);
}
printf("%s\n",argv[1]);
if((target_fd = open(argv[2],O_WRONLY | O_CREAT | O_EXCL,S_IRWXU)) == -1)
{
if(errno = EEXIST)
{
fprintf(stderr,"the targetfile is exist!\n");
exit(3);
}
else
{
fprintf(stderr,"targetfile open failed!\n");
exit(3);
}
}
while((num = read(source_fd,buf,BUFFSIZE)) > 0)
{
if(write(target_fd,buf,num) != num)
{
fprintf(stderr,"targetfile write error!\n");
exit(4);
}
}
close(source_fd);
close(target_fd);
return 0;
}
相关文章推荐
- 简单的程序诠释C++ STL算法系列之十四:copy_backward
- 置顶] 简单的程序诠释C++ STL算法系列之十三:copy http://blog.csdn.net/jerryjbiao/article/details/7376088
- 简单的程序诠释C++ STL算法系列之十四:copy_backward
- JAVA IO - 简单的文件copy程序
- 最简单的ADABOOST人脸检测程序。COPY执行,前提是你配置OpenCV周围环境
- Linux--简单copy程序
- 简单的程序诠释C++ STL算法系列之十四:copy_backward
- 简单的程序诠释C++ STL算法:copy
- 简单的程序诠释C++ STL算法系列之十三:copy
- linux内核分析作业:操作系统是如何工作的进行:完成一个简单的时间片轮转多道程序内核代码
- Python实现最简单的双人聊天程序
- 最简单Win32安装程序制作办法
- 用特殊标示符编写简单的测试程序
- 简单且线程安全的两个单例模式java程序
- 一个简单的数据收集程序
- 敏捷软件开发——一个例子:copy程序
- 基于对话框的MFC程序启动时完全隐藏的简单方法
- 简单的Ajax小程序3
- 文本文档字处丽程序简单代码
- 单片机单串口简单通信程序