一、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对文件描述属性的修改

拷贝文件描述符号

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

修改判定文件的状态标记

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

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

设置信号

unix IO笔记的更多相关文章

  1. 深入理解计算机操作系统——第10章:UNIX IO,打开,关闭,读写文件

    系统级IO:输入输出是主存与外部设备(磁盘,终端,网络)之间拷贝数据的过程 输入:从IO设备拷贝数据到主存中 输出:从主存中拷贝数据到IO设备中 10.1 unix IO 所有的IO设备都被模型化为文 ...

  2. unix io 模型浅析

    POSIX中对同步IO和异步IO的规定: 同步IO操作:引起进程的阻塞直到IO操作完成,异步IO操作:IO操作不会引起进程阻塞 在UNIX下,有5中操作模型: 阻塞IO,非阻塞IO,IO复用,信号驱动 ...

  3. Java IO笔记

    第一:File类(主要获取文件名,判断文件是否存在,创建或者删除文件) 举个例子,代码如下: import java.io.File; public class Main{ public static ...

  4. UNIX读书笔记----UNIX基础知识

    UNIX体系结构: 从严格意义上讲,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境.我们通常将这种软件称为内核(Kernel),因为他相对较小,而且位于环境的核心.图片显示了UNI ...

  5. IO笔记(学习尚硅谷java基础教程)

    一.基础知识 1. 在普通方法和测试方法中文件路径的差异 在普通方法中:文件路径相当于在当前项目中,而不是当前Module(以项目为基准) 在测试方法中:文件路径相当于在当前Module中,而不是当前 ...

  6. Unix/Linux笔记全集

    1:Unix/Linux操作系统概述 要求:理解应用软件和操作系统的区别,掌握系统的Kernel(核心)和shell(外壳)之间的关系以及各自的作用 Solaris:Solaris 是Sun Micr ...

  7. socket.io笔记

    API 网址:https://socket.io/get-started/chat/ 页面上引入: 服务器: 每一个socket可以触发一个断开连接事件: 如果需要使用jquery: 引入网页的jqu ...

  8. socket.io笔记三之子命名空间的socket连接

    当客户端发送admin命名空间下的连接,如果主连接也监听了connetion事件,主连接的connection事件会先触发执行,然后紧接着触发执行admin命名空间下的connection事件.如果客 ...

  9. socket.io笔记一

    //服务端代码 var server = require('http').createServer(app); var io = require('socket.io')(server,{path:' ...

随机推荐

  1. nginx filter

    server { listen 80; server_name g.zcdn.com; index index.html; location / { proxy_cache cache_go; pro ...

  2. 每天学点Linux:二

    关于输入输出和重定向: 默认情况下标准I/O的输入为键盘,输出为显示屏.输入和输出可以通过符号‘>’进行重定向. 例如可以通过命令:$>newfile 来创建一个新文件(如果newfile ...

  3. 菱形java代码

    public class boy { //菱形 public static void main(String[] args) { int m=4; for (int i=0;i<=m;i++){ ...

  4. Java基础:容器

    转载请注明出处:jiq•钦's technical Blog 一.Collection:存放独立元素 Collection中的接口都是可选操作,事实上现类 并不一定实现了其全部接口,这是为了防止&qu ...

  5. golang printf

    1:  打印包括字段在内的实例的完整信息 同 %+V fmt.Printf("Hello world! %v","hufeng") 输出:Hello world ...

  6. OpenCV 开发环境环境搭建(win10+vs2015+opencv 3.0)

    OpenCV 3.0 for windows(下载地址:http://opencv.org/): 本测试中,OpenCV安装目录:D:\Program Files\opencv,笔者操作系统为64位. ...

  7. Dos关闭进程命令

    netstat -ao 查找占用端口的进程 taskkikk /pid 端口pid  /f

  8. C# 课堂总结3-语句

    一.顺序语句 二.条件,分支语句 1.if语句 关键是能够熟练运用 if的嵌套.要考虑好所有的情况. 如果说 条件是两种+情况相互对应的,那么就可以只用 if 与else .但必须要想好 每个else ...

  9. Construct Binary Tree From Inorder and Preorder/Postorder Traversal

    map<int, int> mapIndex; void mapToIndex(int inorder[], int n) { ; i < n; i++) { mapIndex.in ...

  10. 在Oracle 11g中用看Oracle的共享内存段---------IPCS

    很早之前,在一次讲课了,用了命令ipcs,发现oracle的共享内段好小,如下: oracle@mydb ~]$ ipcs -a ------ Shared Memory Segments ----- ...