unix编程(八)高级I/O
来源:互联网 发布:安道尔微信暗语知乎 编辑:程序博客网 时间:2024/05/16 05:31
非阻塞I/O
对于一个给定的描述符,有两种方法为其指定非阻塞I/O方法:
1.如果调用open方法获取描述符,可以指定O_NONBLOCK
2.已经打开可以调用fcntl F_SETFL来改变文件状态标志,变成非阻塞。
文件记录锁
记录锁的功能,当一个进程在读取或者修改文件的某个部分,可以阻止其他进程修改同一文件区
使用fcntl函数 cmd是F_GETLK获取锁状态 F_SETLK设置锁 F_SETLKW这是设置锁的一个阻塞版
还有一个建议性锁和强制性锁的概念,在另外一篇博客已经单独分析了。
I/O多路转接
主要介绍了select和poll函数,具体方法就不说了。现在linux多数使用了epoll的机制。
存储映射I/O
能将一个磁盘文件映射到存储空间中的一个缓冲区上,可以使用mmap函数,返回值是映射去的起始地址。
mprotect可以更改一个现有映射的权限(读写等)
msync将页冲洗到磁盘类似fsync
munmap解除映射区。
1 0
- unix编程(八)高级I/O
- UNIX环境高级编程--高级I/O(三)
- UNIX高级编程-高级I/O
- UNIX高级编程-高级I/O
- unix环境高级编程之一( 基本I/O函数)
- UNIX网络编程------高级I/O函数(十四)
- UNIX环境高级编程--文件I/O(一)
- UNIX环境高级编程--标准I/O库(二)
- unix环境高级编程复习-文件I/O(1)
- unix环境高级编程复习-文件I/O(2)
- unix环境高级编程复习-文件I/O(3)
- UNIX环境高级编程----文件I/O
- UNIX环境高级编程----标准I/O
- 《unix高级环境编程》文件I/O
- 《unix高级环境编程》文件I/O
- Unix环境高级编程---文件I/O
- UNIX环境高级编程--标准I/O
- Unix高级编程-文件I/O
- 第九周项目2-我的数组类
- unity 通过触摸屏幕产生射线实例化玩家
- 查找子树
- Windows 7 下 Ubuntu Kylin 16.04 LTS 双系统的安装
- TableViewCell 系统自带的几种样式
- unix编程(八)高级I/O
- java web目录树
- easyUI中tab中的html片段导包与父页面的包冲突
- 学生信息管理系统
- C# 的时间戳转换
- 移动端head部分整理
- 图像旋转任意角度,python代码,亲测可用
- Log4j使用详情总结
- 简单理解Socket