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

默认输出到终端(屏幕)

 

posted @ 2018-05-06 17:00  geeklove  阅读(2185)  评论(0编辑  收藏  举报