生如夏花的博客

专注于工业物联网行业数据采集,嵌入式Linux系统裁剪,5G智慧网关软件开发等

I/O多路转接之poll函数

如上节所述,poll函数是另一个支持I/O多路转接的函数。

select不同的是poll函数支持更多的条件,而非select函数仅有的三种条件(可读、可写以及异常)。

同时poll函数是以struct pollfd数组类型保存文件描述符(没有文件描述符的数量限制),并为每个文件描述符指定关注的哪些条件,而select函数则是另一种角度,为每个条件设置哪些文件描述符。

文件IO

本节主要介绍不带缓冲的I/O(unbuffered I/O),不带缓冲指的是每个readwrite都会调用内核中的一个系统调用。

不带缓冲的I/O函数不是ISO C的标准函数,但是是符合POSIX的。

原子操作在多进程之间贡献文件变得相当重要。

主要涉及的函数有oepn, read, write, lseek, close; dup, fcntl, sync, fsync, ioctl