我有一个pty主端的文件描述符。库(libvte)使用此pty生成和运行子进程。
我可以轮询和读取文件描述符或其副本,但数据永远不会到达库。
我可以对文件描述符进行轮询和读取,然后将其写回主控文件,但随后我进入了一个讨厌的循环,读取自己的数据,再次没有任何东西可以通过底层库。
是否有任何解决方案允许我在不干扰PTY底层功能的情况下读取数据副本?
我正在使用python,但我认为在这个级别上它并不重要。
最佳答案
查看mypypty程序-这是一个python对/usr/bin/script的重新实现,具有一些额外的功能,因此它演示了python中pty通信的两端:
顺便说一句,当心(相对)裸系统调用的信号-它们可能只在部分完成时返回。请特别参阅maybe_restarted_syscall函数。而仅仅调整窗口大小往往会导致在使用pty时发送信号。
关于python - 如何读取到达PTY主端的数据副本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8639038/