首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用重定向操作时的意外行为

使用重定向操作时的意外行为
EN

Ask Ubuntu用户
提问于 2016-12-17 05:54:15
回答 1查看 56关注 0票数 1

下面的命令用于按照GNU手册复制输入文件描述符:

代码语言:javascript
复制
exec 6<&0

但是,当我像这样更改重定向操作符时,即使文件描述符'0‘指向stdin,该命令仍然有效:

代码语言:javascript
复制
exec 6>&0

有人能解释一下背后的原因吗?

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2016-12-17 09:16:52

Bash对<&>&做了完全相同的事情,即它使用dup()系统调用来创建文件描述符的副本。

当文件描述符被用于读取或写入与打开文件的方式相反的时候,任何由于试图写入文件而导致的错误都会发生。

最初,交互式Bash为读写打开了/dev/tty,作为文件描述符0、1和2。

参见Unix & Linux上的执行3<&1是做什么的,在这里,用户cuonglm费力地使用strace记录这种行为。

票数 3
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/861548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档