在使用 PTY 主/从对控制进程时,我想向相关进程表明标准输入已关闭并且我没有更多内容要发送,但我仍想接收来自该进程的输出。
问题是我只有一个文件描述符(PTY“主”),它处理来自子进程的输入和输出到子进程。所以关闭描述符会关闭两者。
python中的示例:
import subprocess, pty, os
master,slave = pty.openpty()
proc = subprocess.Popen(["/bin/cat"], stdin=slave, stdout=slave)
os.close(slave) # now belongs to child process
os.write(master,"foo")
magic_close_fn(master) # <--- THIS is what I want
while True:
out = os.read(master,4096)
if out:
print out
else:
break
proc.wait()