当前位置:  技术问答>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");不就也可以屏幕输出了吗?
所以我试了试,不可以,不知道为什么?

|
/dev/pts/0 是linux虚拟终端的设备节点
虽然他们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?是不是跟各自的实现方式有关?

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求解 求解 求解
  • Linux Shell编程从初学到精通 第四章课后习题2 求解
  • 有限元求解器 GetDP
  • 偏微分方程求解工具箱 DUNE
  • linux命令求解释....
  • 偏微分方程求解框架 Overture
  • 100分求解!!!!!
  • 编译内核时候出现的问题,求解
  • jquery iis7站长之家
  • 求解ucos ii的一句代码
  • 求助linux下mysql 求解!
  • 求解啊,centos下 shutdown -h now 无效??
  • 求解windows下硬盘安装linux如何用linux引导
  • 关于linux shell的一个不明白的地方。求解
  • solaris安装不上,求解.............
  • [FreeBSD] 大神,求解,control socket : can‘t to any socket
  • ubuntu12.04求解
  • 100分求解如何查看内存最高使用值!!
  • 高分求解---如何在DOS下查杀欢乐时光病毒?用哪种杀毒软件?Windows98没法进入了!
  • 求解struct的大小


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3