Linux开启可视化进程传递pts,Linux下tty/pty/pts/ptmx/console详解

本文探讨了终端和控制台串口中的伪终端概念,如ptmx和pts,介绍了它们在/dev目录下的作用,以及如何通过open函数操作和在Android中利用它们执行系统命令的原理。重点展示了如何通过fork和exece创建子进程,并利用pty进行I/O重定向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载 https://blog.csdn.net/weixin_42365688/article/details/116824149
终端和控制台 串口 console tty pty /dev目录下终端文件 pts/ptmx 伪终端 控制终端 虚拟终端
转载 https://blog.csdn.net/qq_44226094/article/details/105470301

伪终端(pseudoterminal): ptmx, pts (伪终端master和伪终端slave).
/dev/ptmx用于创建伪终端主从设备对.当我们用open打开/dev/ptmx设备后, 返回主设备的文件描述符,
并且在/dev/pts/目录下创建一个伪终端从设备.
在成功打开/dev/ptmx后, 可以通过函数ptsname()来获取从设备的path.
想要打开open伪终端从设备,必须先使用主设备的文件描述符调用grantpt(), unlockpt().
当主设备和从设备都打开后, 在主设备写入的数据可以在从设备上读取, 在从设备上写入的数据可以在主设备读取.
Data written to the slave is presented on the master descriptor as input.  Data written to the master is presented to the slave as input.
伪终端应用:
当需要调用调用exece等函数执行系统命令时,
通过fork函数创建子进程, 在子进程中调用exece执行系统命令, 并且把子进程的stdout和stderr通过dup2重定向
到伪终端的从设备;而在父进程中通过读取伪终端的主设备来获取子进程支持系统命令的输出信息.
详细处理,请看android 中的函数android_fork_execvp_ext()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值