函数原型
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。注意,执行后,文件偏移指针不变
  使用案例
  在案例中有一个输出函数,可以啊pread读到的东西输出出来,并且在案例中也会把读到的东西写到另一个文件中。

#include<unistd.h>
#include<string.h>
#include<fcntl.h>
#include<stdlib.h>
#include<stdio.h>
#include<errno.h>
#define BUFERSIZE 4096
int main(int argc,char*argv[])
{if(argc<3){perror("需要输入文件名和要保存到的另一个文件名");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){printf("%s",buf);if(pwrite(fdw,buf,n,seek)<0){perror("write1");}seek+=n;}close(fd);close(fdw);printf("\n");return 0;}

pread与pwrite相关推荐

  1. 存储方式与介质对性能的影响

    摘要 数据的存储方式对应用程序的整体性能有着极大的影响.对数据的存取,是顺利读写还是随机读写?将数据放磁盘上还将数据放flash卡上?多线程读写对性能影响?面对着多种数据存储方式,我们如何选择?本文给 ...

  2. 字符设备驱动程序 2

    三.字符设备的注册 内核内部使用struct cdev结构来表示字符设备.在内核调用设备的操作之前,必须分配并注册一个或多个struct cdev.代码应包含<linux/cdev.h>, ...

  3. APUE(第三章)文件IO

    引言 本章主要讲文件IO包括:open.read.write.lseek以及close.这些函数通常被称为不带缓冲的IO,不带缓冲至每个read与write都有内核中的一个系统调用.这些不是ISO C ...

  4. 如何用sysbench做好IO性能测试

    2019独角兽企业重金招聘Python工程师标准>>> sysbench 是一个非常经典的综合性能测试工具,通常都用它来做数据库的性能压测,但也可以用来做CPU,IO的性能测试.而对 ...

  5. UNIX环境高级编程第三章

    1.对于内核,所有打开或者新创建的文件都通过文件描述符引用.open或者creat获得的文件描述符传递给read或者write做相关函数的第一参数. [1]open函数,除非创建新的函数带第三个参数, ...

  6. 【APUE】文件 I/O 操作

    博客地址 : http://blog.csdn.net/shulianghan/article/details/46980271 一. 文件打开关闭操作相关函数介绍 1. open 函数 (1) op ...

  7. linux多线程和锁

    要内容:  第一部分 多线程  第二部分 互斥锁  第三部分 条件变量  第四部分 读写锁  第五部分 自旋锁  第六部分 线程壁垒  第七部分 记录锁 第一部分 多线程    Linux 线程的创建 ...

  8. pci驱动与硬件通信

    接上一篇博文,当将PCI设备空间的资源映射出来之后.只需要做两件事情,PCI设备的基本框架就建立起来了. 首先注册驱动程序,调用如下函数: int iosDrvInstall() / STATUS i ...

  9. UNIX环境高级编程 文件I/O

    大多数文件I/O 只需要用到 5个函数 :    open , read , write , lseek , close 本章描述的都是不带缓冲的I/O(read write 都调用内核中的一个系统调 ...

最新文章

  1. Navicat 连接 RDS数据库
  2. 局域网共享问题全方位解决
  3. Windows下创建软硬链接
  4. php 各种排序算法,PHP四种常见排序算法
  5. 微信小程序云开发教程-微信小程序的JSON配置
  6. 省市县联动列表html代码,若依添加省市县联动三级菜单
  7. recycle view设置item下划线
  8. python有道字典_【Python】Python利用有道翻译开发API应用示例
  9. android国外壁纸app,4K Wallpapers,火遍全球的4K高清壁纸App,谷歌市场1300万好评!...
  10. Linux操作系统的性能将主要取决于,高校邦Linux操作系统安全与性能调优章节测试答案...
  11. 用Java实现成绩等级划分
  12. python入门——热量转换 I
  13. linux中的 inode 详解
  14. 步进电机每转步数和步进角关系:每转步数 = 360°/歩进角
  15. Linux磁盘分区工具fdisk和gdisk的区别
  16. 普通高等学校毕业生登记表 计算机水平,普通高等学校毕业生登记表模板-20210629233444.pdf-原创力文档...
  17. 云原生丨手把手教你使用zabbix监控postgresql数据库(超详细讲解)
  18. C# MD5加密工具类
  19. java逻辑题_Java蓝桥杯——逻辑推理练习题
  20. java使用idea编译或者打包时出现There are test failures

热门文章

  1. linux运行gradle,Linux Gradle 安装
  2. 利用游戏服务器引擎Matchvs开发联网微信小游戏
  3. Hive基本使用(1)
  4. 推动百万本地生活商户入淘宝,口碑饿了么给三四线城市带来新商机
  5. 我的奋斗史(3)——江湖险恶
  6. html文字阴影php中文网,css3如何添加文字阴影效果?text-shadow设置文字阴影效果...
  7. 关于modbus rtu协议的CRC(循环冗余校验)在线计算
  8. harris位_Harris角点
  9. 隐藏和显示div的两种方法
  10. linux启动Oracle和mysql