fd是一个非负整数,一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。
程序打开一个现有文件或者创建一个新文件,内核向该进程返回一个文件描述符。
每个Unix进程都有三个标准的POSIX文件描述符,对应三个标准流:
(ref:)
整数值 | 名称 | <>符号常量 | <>文件流 |
---|---|---|---|
0 | STDIN_FILENO | stdin | |
1 | STDOUT_FILENO | stdout | |
2 | STDERR_FILENO | stderr |
标准输入:是输入到程序的数据(通常是文件)。程序要求以读(read)操作来传输数据。
C++ <iostream>变量为std::cin
并非所有的程序都要求输入,比如ls
除非重定向,否则输入是预期由键盘获取的。
标准输出:C++ <iostream>变量为std::cout
除非重定向,否则输出到终端(屏幕)
并非所有程序都要求输出,如mv
标准错误:C++ <iostream>变量为std::cerr 和 std::clog
默认输出到终端(屏幕)