概念
I/O
运行一个程序时 , 需要从某个位置读取输入信息 , 然后 cpu 处理, 最后将输出显示到屏幕或文件进程通过文件描述符的编号通道来获取输入并输出。
标准I/O
用于IO的外部设备(逻辑上的外部设备)
在Linux中,一切设备皆文件。因此标准输入标准输出更具体的含义是文件。
当我们使用文件描述符进行操作时,需要操作标准输入、标准输出、标准错误,可以包含如下头文件:
#include <unistd.h>
这个头文件定义了标准设备,当执行一个shell命令行时,通常会自动打开三个标准文件,即
#define STDIN_FILENO 0 / Standard input. /
—— 标准输入文件(stdin),默认接受来自键盘的输入;
#define STDOUT_FILENO 1 / Standard output. /
—— 标准输出文件(stdout) , 默认输出到终端窗口;
#define STDERR_FILENO 2 / Standard error output. */
—— 标准错误输出文件(stderr),默认输出到终端窗口,
由于STDOUT与STDERR都会默认显示在终端上,为了区分,就有了编号的0,1,2的定义(即文件描述符,分别为0, 1, 2),用1表示STDOUT,2表示STDERR。
进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。默认情况下,标准输出和标准错误都将被链接到屏幕上,并且都不保存在磁盘文件中。

cat命令
什么参数也没有
将标准输入内容复制到标准输出文件中
cat // 回车;输入内容;同时按下Ctrl+D,告诉cat命令已经达到了标准输入

本文详细介绍了Linux中的I/O重定向和管道编程。讲解了标准I/O、cat命令的使用,以及如何进行输出、错误和输入重定向。还阐述了重定向的原因,并举例说明了如何通过重定向符">"、">>"、"<"和"<<"操作文件。最后,文章解释了管道的概念,展示了如何使用管道连接不同命令以实现数据流的传递。
9639

被折叠的 条评论
为什么被折叠?



