Linux标准IO和管道
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.标准输入和输出
程序:指令+数据
读入数据:Input
输出数据:Output
打开的文件都有一个fd: file descriptor (文件描述符)
Linux给程序提供三种 I/O 设备
标准输入(STDIN)-0 默认接受来自键盘的输入
标准输出(STDOUT)-1 默认输出到终端窗口
标准错误(STDERR)-2 默认输出到终端窗口
I/O重定向:改变默认位置
[root@node101.yinzhengjie.org.cn ~]# ll /dev/std* #这个是系统固定的三个描述符,可用很清楚的看到相应数字对应的链接设备。 lrwxrwxrwx. 1 root root 15 Aug 6 12:27 /dev/stderr -> /proc/self/fd/2 lrwxrwxrwx. 1 root root 15 Aug 6 12:27 /dev/stdin -> /proc/self/fd/0 lrwxrwxrwx. 1 root root 15 Aug 6 12:27 /dev/stdout -> /proc/self/fd/1 [root@node101.yinzhengjie.org.cn ~]# [root@node101.yinzhengjie.org.cn ~]# ll /proc/self/fd #我们查看当前终端被映射成了3个数字,而这3个数字有对应了一个终端连接,我们可用使用tty命令查看。 total 0 lrwx------. 1 root root 64 Aug 14 09:39 0 -> /dev/pts/2 lrwx------. 1 root root 64 Aug 14 09:39 1 -> /dev/pts/2 lrwx------. 1 root root 64 Aug 14 09:39 2 -> /dev/pts/2 lr-x------. 1 root root 64 Aug 14 09:39 3 -> /proc/67458/fd [root@node101.yinzhengjie.org.cn ~]# [root@node101.yinzhengjie.org.cn ~]# tty #我们可用查看当前正在使用的终端 /dev/pts/2 [root@node101.yinzhengjie.org.cn ~]#