当前位置: 技术问答>linux和unix
求解释stdin,stdout,stderr
来源: 互联网 发布时间:2017-01-24
本文导语: 它们都是指向FILE结构的指针,FILE结构里有文件描述符,默认stdin文件描述符是0,stdout是1,stderr是2。 本以为它们指向不同的文件,后来发现不是的 lrwxrwxrwx 1 root root 15 12-01 14:09 /dev/stdin -> /proc/self/fd/0 lrwxrwxrwx 1...
它们都是指向FILE结构的指针,FILE结构里有文件描述符,默认stdin文件描述符是0,stdout是1,stderr是2。
本以为它们指向不同的文件,后来发现不是的
lrwxrwxrwx 1 root root 15 12-01 14:09 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root 15 12-01 14:09 /dev/stdout -> /proc/self/fd/1
lrwxrwxrwx 1 root root 15 12-01 14:09 /dev/stderr -> /proc/self/fd/2
lrwx------ 1 root root 64 12-11 09:55 /proc/self/fd/0 -> /dev/pts/0
lrwx------ 1 root root 64 12-11 09:56 /proc/self/fd/1 -> /dev/pts/0
lrwx------ 1 root root 64 12-11 09:56 /proc/self/fd/2 -> /dev/pts/0
crw--w---- 1 root tty 136, 0 12-11 09:56 /dev/pts/0
它们都指向同一个字符设备文件,这样的话我们fprintf(stdin,"hello world");不就也可以屏幕输出了吗?
所以我试了试,不可以,不知道为什么?
本以为它们指向不同的文件,后来发现不是的
lrwxrwxrwx 1 root root 15 12-01 14:09 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root 15 12-01 14:09 /dev/stdout -> /proc/self/fd/1
lrwxrwxrwx 1 root root 15 12-01 14:09 /dev/stderr -> /proc/self/fd/2
lrwx------ 1 root root 64 12-11 09:55 /proc/self/fd/0 -> /dev/pts/0
lrwx------ 1 root root 64 12-11 09:56 /proc/self/fd/1 -> /dev/pts/0
lrwx------ 1 root root 64 12-11 09:56 /proc/self/fd/2 -> /dev/pts/0
crw--w---- 1 root tty 136, 0 12-11 09:56 /dev/pts/0
它们都指向同一个字符设备文件,这样的话我们fprintf(stdin,"hello world");不就也可以屏幕输出了吗?
所以我试了试,不可以,不知道为什么?
|
/dev/pts/0 是linux虚拟终端的设备节点
虽然他们3都指向/dev/pts/0
但是/proc/不是一个普通的文件系统,/proc文件系统里的每一个文件的读写都是内核里专门函数实现的专有功能
不能用普通目录的常理推断
我猜测/proc/self/fd/0
/proc/self/fd/1 都是只能写或者只能读,不像普通文件fd那样既能读也能写
同求高人解答
虽然他们3都指向/dev/pts/0
但是/proc/不是一个普通的文件系统,/proc文件系统里的每一个文件的读写都是内核里专门函数实现的专有功能
不能用普通目录的常理推断
我猜测/proc/self/fd/0
/proc/self/fd/1 都是只能写或者只能读,不像普通文件fd那样既能读也能写
同求高人解答
|
[root@RHEL6A ~]# echo 'a' > /dev/stdout
a
[root@RHEL6A ~]# echo 'a' > /dev/stdin
a
[root@RHEL6A ~]# echo 'a' > /dev/stderr
a
echo.c里用的好像是putchar?是不是跟各自的实现方式有关?
a
[root@RHEL6A ~]# echo 'a' > /dev/stdin
a
[root@RHEL6A ~]# echo 'a' > /dev/stderr
a
echo.c里用的好像是putchar?是不是跟各自的实现方式有关?
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。