程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> C/C++ on Liunx platform第二篇:I/O

C/C++ on Liunx platform第二篇:I/O

編輯:關於C

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
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved