linux创建读写文件
2013-07-03 17:16
232 查看
#include <unistd.h> #include <fcntl.h> #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <errno.h> #include <string.h> #define BUFFER_SIZE 1024 int main(int argc,char **argv) { int from_fd,to_fd; int bytes_read,bytes_write; char buffer[BUFFER_SIZE]; char *ptr; if(argc!=3) { fprintf(stderr,"Usage:%s fromfile tofile\n\a",argv[0]); exit(1); } /* 打开源文件 */ if((from_fd=open(argv[1],O_RDONLY))==-1) { fprintf(stderr,"Open %s Error:%s\n",argv[1],strerror(errno)); exit(1); } /* 创建目的文件 */ if((to_fd=open(argv[2],O_WRONLY|O_CREAT,S_IRUSR|S_IWUSR))==-1) { fprintf(stderr,"Open %s Error:%s\n",argv[2],strerror(errno)); exit(1); } /* 以下代码是一个经典的拷贝文件的代码 */ while(bytes_read=read(from_fd,buffer,BUFFER_SIZE)) { /* 一个致命的错误发生了 */ if((bytes_read==-1)&&(errno!=EINTR)) break; else if(bytes_read>0) { ptr=buffer; while(bytes_write=write(to_fd,ptr,bytes_read)) { /* 一个致命错误发生了 */ if((bytes_write==-1)&&(errno!=EINTR)) break; /* 写完了所有读的字节 */ else if(bytes_write==bytes_read) break; /* 只写了一部分,继续写 */ else if(bytes_write>0) { ptr+=bytes_write; bytes_read-=bytes_write; } } /* 写的时候发生的致命错误 */ if(bytes_write==-1) break; } } close(from_fd); close(to_fd); exit(0); }
相关文章推荐
- 15 Linux更改权限解决新建用户不能读写创建文件/文件夹的问题
- Android与LinuxC目录创建以及文件读写操作
- 创建和读写linux下面的/proc文件
- linux创建读写文件示例
- linux创建文件的获取读写文件权限设置
- samba使linux普通用户具有创建文件夹、读写文件的权限
- linux c 中文件的创建 读写
- linux下面php文件和文件夹的创建及读写问题
- 【linux】驱动程序创建和读写进程文件
- linux中创建特殊文件mknod命令用法详解
- python 读写、创建 文件的方法(必看)
- Linux:使用mktemp创建临时文件/目录
- LINUX的ORACLE 中实现PL/SQL读写文件 问题解决方法
- [Linux文件]使用当前时间信息作为文件名来创建文件
- Linux 利用虚拟内存地址读写文件
- linux_创建用户_copy远程文件_解压缩_执行
- Java Android 创建读写TXT文件
- Linux查看文件内容、创建、查看软硬链接命令示例
- VMware安装Linux,出现错误-未找到要在其中创建新文件系统的有效设备(转)
- Linux动态链接库.so文件的创建与使用