文件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/目录:
’