unix下利用creat函数与write函数 创建复制文件
来源:互联网 发布:水果软件 编辑:程序博客网 时间:2024/06/02 02:14
文件描述符(file descriptor):1 标准输出;2 标准错误;0 标准输入
fd = file descriptor
exit(0) = 正常退出
argc代表命令行输入参数的个数
argv存储了所有的命令行参数
#include<stdio.h>#include<fcntl.h>#include<string.h>#include<unistd.h>#include<dirent.h>#include<stdlib.h>#include<sys/types.h>#include<sys/stat.h>#define BUFFER_SIZE 1024int main(int argc,char **argv){ int from_fd,to_fd; long file_len = 0; int ret = 1; char buffer[BUFFER_SIZE]; char *ptr; if(argc!= 3)//文件描述符 0+1+2 { printf("usage:%s fromfile tofile !\n",argv[0]); exit(1); } if((from_fd = open(argv[1],O_RDONLY|O_CREAT))==-1) //测试文件偏移量,因为文件偏移量可能为负值 所以用-1 来判断测试 { printf("open %s error!\n",argv[1]); exit(1); } if((to_fd = open(argv[2],O_WRONLY|O_CREAT))==-1) { printf("open %s error! \n",argv[2]); exit(1); } file_len = lseek(from_fd,0,SEEK_END); lseek(from_fd,0,SEEK_SET);//off_t lseek(int fd ,off_t offset,int whence); printf("from file size is %d!\n",file_len); while(ret) { ret = read(from_fd,buffer,BUFFER_SIZE);//read(int fd, void *buf ,size_t nbytes); if(ret == -1) { printf("read error!\n"); exit(1); } write(to_fd,buffer,ret); file_len =ret; bzero(buffer ,BUFFER_SIZE); } printf("there are %d buyes data left without copy!\n",file_len); close(from_fd); close(to_fd); exit(0);}
阅读全文
0 0
- unix下利用creat函数与write函数 创建复制文件
- UNIX--文件I/O函数--open、creat、close、lseek、read、write等各种函数 详解
- creat函数:创建一个文件
- 3.4 creat函数-创建文件
- linux文件函数-creat
- 打开文件creat函数
- Linux下read和write函数复制一个文件
- linux下的文件操作函数及creat用法
- linux下open函数和creat函数
- linux 学习笔记(三):open、creat、close 函数的使用,文件的创建、打开与关闭
- Linux C编程学习笔记(2):open、creat、close函数及文件的创建、打开与关闭
- Linux C read、write、creat、open等函数应用实例
- Linux&C open creat read write lseek 函数用法总结
- 利用creat创建链表 利用outlist打印链表 利用 fun 函数 返回链表中最大的值
- unix环境高级编程之 read与write 函数详解
- 【UNIX环境高级编程】文件 IO 操作 一 ( open | close | creat | lseek | write | read )
- (二)文件I/O 3.creat函数和close函数
- creat、close、lseek函数
- Android 应用中跳转到应用市场评分
- lua脚本学习5
- JVM 垃圾收集与内存分配
- jsp九大内置对象
- 抽象类和接口
- unix下利用creat函数与write函数 创建复制文件
- crontab笔记
- 请求数据—HttpUrlConnection
- 打印乘法口诀
- 二叉树的建立,前中后序遍历的递归版本和非递归版本,层序遍历
- DB2数据迁移到mysql,使用insert语句
- thinkpad r400 换硬盘
- tensorflow学习笔记----一(基本使用)
- Gulp和webpack的区别,是一种工具吗?