文件IO(系統IO)
文件描述符(fd)是在文件IO中貫徹適中的類型。
文件描述符的概念:
實質是一個整形數,文件描述符優先使用當前可用範圍內最小的一個。
說到stream首先想到的是stdio、stdout、stderr、
說到fd首先想到的是0、1、2
文件描述符的操作:open、close、read、write、lseek
標準IO | 系統IO |
r | O_RDONLY |
r+ | O_RDWR |
w | O_WRONLY | OCREAT | O_TRUNC |
w+ | O_RDWR | O_TRUNK | O_CREAT |
open():
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
當有O_CREAT的時候,用三參函數。函數名相同,參數不同,在C++中叫重載,但是在C語言中沒有重載,他是利用變參機制實現的,即...
int open(const char *pathname, int flags, /* mode_t mode */ );
標準IO基於系統IO
將文件IO與系統IO區別:
舉例:傳達室老大爺跑郵局
區別:相應速度 & 吞度量
面試:如何使一個程序變快?
提醒:標準IO與文件IO不可以混用。
轉換:fileno、fdopen
IO的效率問題:
習題:
文件共享:
原子操作:
程序中的重定向:dup、dup2
同步:sync、fsync、fdatasync
fcnt1();
ioctl();
/dev/fd/目錄:
’