首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >stdout和/dev/stdout之间的区别

stdout和/dev/stdout之间的区别
EN

Stack Overflow用户
提问于 2015-06-11 20:28:13
回答 2查看 16K关注 0票数 5
代码语言:javascript
复制
bala@hp:~$ echo "Hello World" > stdout
bala@hp:~$ cat stdout
Hello World

bala@hp:~$ echo "Hello World" > /dev/stdout
Hello World

请说明stdout/dev/stdout之间的区别

注意:

代码语言:javascript
复制
bala@hp:~$ file stdout
stdout: ASCII text

bala@hp:~$ file /dev/stdout
/dev/stdout: symbolic link to `/proc/self/fd/1'

请帮助我们了解它们之间的区别。

EN

回答 2

Stack Overflow用户

发布于 2015-06-11 20:32:24

在你的情况下

  • stdout是一个普通文件,在运行该命令的同一目录中创建。

因此,当您将echo的输出重定向到stdout时,它会写入到文件中。您需要执行cat (例如,您在此处执行了)才能在此处查看屏幕上的内容。

  • /dev/stdout是一个 file,它是到/proc/self/fd/1的链接,这意味着它引用了当前进程持有的文件描述符1。

因此,当您将echo的输出重定向到/dev/stdout时,它会被直接发送到标准输出(屏幕)。

票数 19
EN

Stack Overflow用户

发布于 2015-06-11 20:32:32

一个是普通文件,与任何其他普通文件如~/foobar.txt没有什么不同。

另一个是一个符号链接(类似于您可以使用ln -s创建的链接),它指向一个特殊的虚拟文件,表示当前进程中的文件描述符1。

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

https://stackoverflow.com/questions/30780780

复制
相关文章

相似问题

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