当前位置:编程学习 > C/C++ >>

C/C++ on 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
补充:软件开发 , C语言 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,