Unix标准输入/输出 (I/O) 流知识讲解
来源:互联网 发布:wordpress cms主题 编辑:程序博客网 时间:2024/05/19 20:21
Unix标准 C 库(因而,每个 Unix 程序)定义了三种Unix标准流:输入、输出和错误。有时将它们称为 stdin、stdout 和 stderr,这是在所有 C 程序中用来表示它们的全局变量。
当您在 Shell 中使用 > 操作符将程序输出重定向到文件时,就可以将它的Unix标准输出 (stdout) 流发送到这个文件。例如:ls > this-dir 将 ls 的输出发送到一个名为 this-dir 的文件。
当您在 Shell 中使用 < 操作符将程序输入重定向到文件时,就可以将该文件中的内容输入到该程序的标准输入 (stdin) 流。例如:sort < this-dir 可以从名为 this-dir 的文件中读取内容,并将其作为 sort 命令的输入。
另一个常用于重定向标准流的操作符是“|”(管道)操作符,它可以将左侧程序的Unix标准输出流连接到右侧程序的标准输入流。例如:ls | sort 和前面的两个示例完成相同的任务,并且无需临时文件,ls 的输出直接进入 sort 命令。
如果您仔细观察,那么可能会发现,前面的这些示例中并没有出现标准错误 (stderr) 流。与Unix标准输出流一样,可以对 stderr 进行重定向或使用管道进行传输,但是您需要告诉 Shell 您希望处理 stderr 而不是 stdout。
可以使用 2> 操作符将Unix标准错误流重定向到文件。在处理生成有用的错误输出的命令时,您经常会看到这个操作符,比如用于编译 Unix 程序的 make 工具:make 2> build-errors。
这个命令运行了 make,并将任何错误信息发送到 build-errors 文件。与之类似,您可以使用 2| 将 stderr 通过管道传递到另一个程序。
如果您对具体的细节感兴趣,那么其他的流也有与之对应的数字,尽管很少使用到它们(0 表示标准输入,1 表示标准输出),除了在一个非常常见的操作符中。
在清单 1 所示的示例中,2>&1 操作符将Unix标准错误流连接 到Unix标准输出流。与 > 操作符组合在一起,您可以使 stderr 和 stdout 输出到相同的文件中。
CODE:清单 1. 将标准错误流连接到标准输出流
make > build-output 2>&1
【编辑推荐】
- Unix awk的内置函数知识概括
- 关于Unix awk的记录的知识讲解
- Unix awk的调用方式方面的知识介绍
- Unix awk使用手册修改版本
- 为什么要使用Unix awk
- Unix标准输入/输出 (I/O) 流知识讲解
- Unix标准输入、输出
- I/O输入、输出
- UNIX - 标准I/O库
- 5.3 标准I/O库_标准输入、标准输出和标准出错
- APUE-1.3 用标准I/O将标准输入复制到标准输出
- 1.3 用标准I/O将标准输入复制到标准输出
- APUE 1-5用标准I/O将标准输入复制到标准输出
- C++ 输入/输出(I/O)
- Java I/O(输入/输出)
- I/O(输入/输出)
- UNIX环境编程学习笔记—文件I/O之标准I/O流
- 标准I/O与Unix I/O函数整合
- unix标准I/O学习笔记
- UNIX环境高级编程----标准I/O
- UNIX环境高级编程--标准I/O
- UNIX高级编程-标准I/O
- UNIX再学习 -- 标准I/O
- 方法传参
- poj 3225 Help with Intervals[线段树]
- c# winform 获取当前程序运行根目录
- java 链接sql server2005
- 添加WebService引用的新增 演示
- Unix标准输入/输出 (I/O) 流知识讲解
- 精心挑选的12款优秀 jQuery 手风琴效果插件和教程
- Java Excetion 处理
- sql子查询与连接查询
- fotk的陷阱
- oracle Format Models(转)
- poj 2240 bellman-ford
- asp.net导出数据到Excel的方法(完全无组件,不用调用Excel.exe)
- 优秀网页设计:30佳精美的国外黑色风格网站作品