pread与pwrite
来源:互联网 发布:pid控制算法公式详解 编辑:程序博客网 时间:2024/05/20 13:04
函数原型
Ssize_t pread(int fd,void *buf,size_t nbytes,off_t offset);
Ssize_t write(int fd,const void *buf,size_t nbytes,off_t offset);
调用pread相当于调用lseet后再调用read函数,其区别是调用pread时无法中断其定位和读操作
不更新当前文件偏移量。
pread参数
(1) fd:要读取数据的文件描述符
(2) buf:数据缓存区指针,存放读取出来的数据
(3) count:读取数据的字节数
(4) offset:读取的起始地址的偏移量,读取地址=文件开始+offset。注意,执行后,文件偏移指针不变
Pwrite参数
(1) fd:要写入数据的文件描述符
(2) buf:数据缓存区指针,存放要写入文件中的数据
(3) count:写入文件中的数据的字节数
(4) offset:写入起始地址的偏移量,写入地址=文件开始+offset。注意,执行后,文件偏移指针不变
使用案例
#include<unistd.h>#include<string.h>#include<fcntl.h>#include<stdlib.h>#include<stdio.h>#include<errno.h>#define BUFERSIZE 4096int main(int argc,char*argv[]){ if(argc<3){ perror("input filename"); exit(0); } int fd,fdw; char buf[BUFERSIZE]; int n; int lk; int seek =0; fd = open(argv[1],O_RDWR|O_CREAT,0777); fdw = open(argv[2],O_RDWR|O_CREAT,0777); if(fd<0||fdw<0) { perror("open"); exit(1); } // lseek(fd,50,SEEK_SET); while((n=pread(fd,buf,BUFERSIZE,seek))>0){ if(pwrite(fdw,buf,n,seek)<0) { perror("write1"); } seek+=n; } printf("\n"); return 0;}
0 0
- pread与pwrite
- pread pwrite
- pread pwrite
- pread和pwrite函数
- read()/write()/pread()/pwrite()等等
- pread,pwrite,read,write区别
- pread,pwrite,read,write区别
- read()/write()/pread()/pwrite()等等
- 嵌入式 read、pread、write、pwrite等等
- Linux文件定位读写—lseek、pread、pwrite
- Linux系统函数read()/write()/pread()/pwrite()的区别
- linux编程学习笔记(八) 文件 定位 lseek pread pwrite
- I/O read()/write()/pread()/pwrite()/fread()/fwrite 等
- I/O read()/write()/pread()/pwrite()/fread()/fwrite
- linux编程学习笔记(八) 文件 定位 lseek pread pwrite
- Linux系统函数read()/write()/pread()/pwrite()的区别
- pwrite
- Linux 编程 出现警告warning: implicit declaration of function 'pread'('pwrite')
- Undefined symbols for architecture armv*
- Maven最佳实践:划分模块
- SDKD 2016 Summer Single Contest #01.B
- Android UI性能优化实战 识别绘制中的性能问题
- 数组之选择排序
- pread与pwrite
- dbus 和 policykit 实例篇(python)
- Android Studio常用快捷键
- 基本进程调度算法总结
- ios中写framework并调用的方法以及所遇到的问题
- linux驱动--设备节点生成
- 热修复 nuwa android studio cmd $ANDROID_HOME is not defined
- BSGS模版(求解离散对数,模数p是不是质数都可以)
- 对laravel5概念的理解 -- 门面模式(Facade)