我已经发布了一个问题,要在一种非传统的串口上从用户空间进行打印。 linux non-standard serial console
然而,我意识到我对用户空间打印的架构有点困惑。
答案 0 :(得分:3)
printf()
写入stdout
,它是包装文件描述符1的FILE *
。文件描述符要么从父级继承,要么明确打开。如果您在典型系统中向上遵循流程层次结构,则最终会到达login
流程,该流程通常由*getty
流程生成。 getty进程使用适当的设置(线路速度,奇偶校验,...在串行线路上)连接到终端,并且通常在第一个键/ ENTER键上生成login
。 gettys通常直接从传统初始化系统上的/etc/inittab
启动。
答案 1 :(得分:1)
printf
使用内部系统调用write()并写入文件描述符1,它与tty设备文件相关联。
你说的链接是由内核设置的。