设为首页 加入收藏

TOP

C/C++ on Liunx platform第二篇:I/O
2014-11-24 00:33:08 来源: 作者: 【 】 浏览:25
Tags:C/C Liunx platform 第二篇 I/O

UNIX API提供最基本的IO函数,声明在fcntl.h unistd.h中。(fcntrl<=>fd control)
应用程序使用file descriper(文件描述符)和内核交互。
这些函数与标准库中的IO对比,称为unbuffered I/O.
UNIX中一切都是文件,磁盘上文件,socket都可以用FD来标识,也都可以使用这些函数操作I/O.
UNIX 常用IO模型(部分):
1.blocking IO
2. Non-blocking IO
3. IO 复用
在打开文件时,默认I/O方式是blocking.
函数原型:
ssize_t read(int,void*,size_t); //-1 error , 0 EOF
ssize_t write(int,void*,size_t);
read和write一般都放到一个循环里,出错或者EOF才break
在socket IO时候,如果是blocking mode,在读操作的时候,如果内核没有准备好数据,那么read函数就会阻塞,自然需要一个thread来处理。
IO复用技术可以使服务器不用为每一个客户端都分配2个thread.
< to be continue...>


摘自 leonzhang
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇define true false 下一篇C/C++ on Liunx platform第三篇:..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: