zoukankan      html  css  js  c++  java
  • unix IO笔记

    一、IO与文件映射

            1、IO的共享与效率

                  read与write其中数据缓冲的大小

                  读取数据的缓冲:getpagesize

             2、定位与定位读取(随机读取)

                  read与write在操作的时候,自动移动读取位置。

                  lseek读取定位,改变读取位置。

                 

                  pread/pwrite在指定位置读写。

                  lseek函数说明:返回当前读取位置在文件中的绝对位置

                  off_set  lseek(int fd,//定位文件描述符号

                    off_t off,// 定位位置

                  int whence/ 文件开始位置/文件结束位置/文件当前位置   SEEK_SET/SEEK_END/SEEK_CUR)

                  lseek的作用:定位文件的位置。lseek移动位置只要合法,都是有效的。

                  lseek+write = pwrite          lseek+read = pread

                  读取一个特殊的文件:

                      /proc/${pid}/mem文件程序中的虚拟映射文件

             文件的其他操作

                    fstat获取文件状态

                    ftruncate改变文件大小

             文件映射:

                    虚拟地址映射到内存;

                    虚拟地址可以映射到文件:可以用内存的方式访问文件。

                               mmap/munmap

                     1、使用内存方式写入数据

                     2、使用内存方式读取数据

    二、文件描述符号的操作(IO锁)

            文件描述符号是整数,文件描述符号对应内核的上下文环境

            dup  返回系统指定的整数               dup2拷贝文件描述符号,返回用户指定的整数

            fcntl对文件描述属性的修改

                      拷贝文件描述符号

                      修改判定文件的遗传方式(描述标记)

                      修改判定文件的状态标记

                      设置强制锁,重新编译内核

                      设置建议锁,(默认方式)

                      设置信号

  • 相关阅读:
    Python3 Selenium自动化web测试 ==> 第十一节 WebDriver高级应用 -- 显示等待 + 二次封装
    Python3 Selenium自动化web测试 ==>FAQ:Unittest测试报告生成文件名加测试完成时间字符串
    Python3 Selenium自动化web测试 ==>FAQ:日期格式和日期字符串格式相互转换
    学习目录
    dotnet学习系列
    Vue.js——60分钟browserify项目模板快速入门
    Vue.js——使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
    Vue.js——vue-resource全攻略
    Vue.js——基于$.ajax实现数据的跨域增删查改
    Vue.js——组件快速入门(下篇)
  • 原文地址:https://www.cnblogs.com/riasky/p/3478886.html
Copyright © 2011-2022 走看看