返回介绍

重定向即替换数据流

发布于 2024-10-10 23:21:38 字数 811 浏览 0 评论 0 收藏 0

标准输入/输出/错误在描述符表中的位置是固定的,但它们指向的数据流可以改变。

所有向标准输出发送数据的函数会先查看描述符表,看 1 号描述符指向哪条数据流,然后再把数据写到这条数据流中,

printf() 便是如此。

进程可以重定向自己

到目前为止,你只在命令行中用“>”和“<”运算符重定向过程序,但只要修改描述符表,进程也能重定向它们自己。

百宝箱

难怪要用“2>”你可以在命令行用“>”运算符重定向标准输出,用“2>”重定向标准错误:./myprog > output.txt 2> errors.log
现在,知道为什么标准错误要用“2> ”来重定向了吧,因为 2 是标准错误在描述符表中的编号。在很多操作系统中,也可以用“1> ”来重定向标准输出。而在类 Unix 操作系统中,可以用以下命令把标准错误和标准输出重定向到一个地方:

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文