nginx的代码非常的优秀,之前已经介绍了sendfile的使用来实现“内存零拷贝”,今天我又理解了一下writev函数的使用,以nginx-1.6.0为例,在src/os/unix/ngx_writev_chain.c的113行,如下图:可以man2writev看下函数的概念(与writev相对应的还有一个readv)writev是读取多个不..
分类:
其他好文 时间:
2014-07-22 18:31:12
阅读次数:
267
引言:高级I/O包括非阻塞I/O、记录锁、系统V流机制、I/O多路转接(select和poll函数)、readv和writev函数以及存储映射I/O。
(一)非阻塞I/O
可能会使进程永远阻塞的一类系统调用有:
1、如果某些文件类型的数据并不存在,则读操作可能会使调用者永远阻塞。
2、如果数据不能立即被上述同样类型的文件接受,则写操作也会使调用者永远阻塞。
3、在某种条件发生之前,打开某...
分类:
系统相关 时间:
2014-05-22 08:05:30
阅读次数:
432