Linux中的文件描述符(file descriptor)
fd是一个非负整数,一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。
程序打开一个现有文件或者创建一个新文件,内核向该进程返回一个文件描述符。
每个Unix进程都有三个标准的POSIX文件描述符,对应三个标准流:
(ref:https://zh.wikipedia.org/wiki/%E6%96%87%E4%BB%B6%E6%8F%8F%E8%BF%B0%E7%AC%A6)
整数值 | 名称 | <unistd.h>符号常量[1] | <stdio.h>文件流[2] |
---|---|---|---|
0 | Standard input | STDIN_FILENO | stdin |
1 | Standard output | STDOUT_FILENO | stdout |
2 | Standard error | STDERR_FILENO | stderr |
标准输入:是输入到程序的数据(通常是文件)。程序要求以读(read)操作来传输数据。
C++ <iostream>变量为std::cin
并非所有的程序都要求输入,比如ls
除非重定向,否则输入是预期由键盘获取的。
标准输出:C++ <iostream>变量为std::cout
除非重定向,否则输出到终端(屏幕)
并非所有程序都要求输出,如mv
标准错误:C++ <iostream>变量为std::cerr 和 std::clog
默认输出到终端(屏幕)