QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1405|回复: 1

标准输出问题请教

[复制链接]
发表于 2005-6-8 09:27:21 | 显示全部楼层 |阅读模式
请问,系统信息一般从显示器打印出来,将显示器作为标准输出的内核代码文件是哪个?printf用多了,但一直不知道它的道理谢谢!
发表于 2005-6-8 18:38:28 | 显示全部楼层
我猜想 0 1 2 三个 fd 都是从父进程继承的,所以要看,就应该是在核心源码的 init/main.c
http://lxr.linux.no/source/init/main.c#L674
这里打开了 /dev/console 到 fd 0,然后两次 sys_dup 复制到 1 和 2,然后 exec 了 /sbin/init,这就是 /sbin/init 的 stdin, stdout 和 stderr。/sbin/init 是所有进程的父进程,因此派生进程都会继承这三个文件描述符。

当然,进程可以关闭某个 fd 或者重新打开指向其它的文件(譬如普通文件或者 socket 或者 pipe 或者 /dev/pts/* 等)。由此派生的子进程也会继承这个特性。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 11:55 , Processed in 0.036176 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表