刚开始学习Linux编程的朋友可能会不知道什么是文件描述符,我现在就简单的介绍一下。

1
2
3
4
5
6
7
/usr/include/unistd.h

...
#define STDIN_FILENO 0 /* Standard input. */
#define STDOUT_FILENO 1 /* Standard output. */
#define STDERR_FILENO 2 /* Standard error output. */
...

虽然STDIN_FILENO和stdin效果很像,但是是两个不一样的东西,文件描述符的类型的 int ,而stdin
FILE* 类型,具体差别可以参考STDIN_FILENO的作用及与stdin 的区别

常见的对文件描述符的操作:
read(), write(),open(),lseek(),select(),poll()

参考源