2

这是一个在 Ubuntu 系统上完美运行的代码片段,但在 OS X 上调用 setraw 会使 Python 进程挂起。

import os, sys, termios, tty

# Open pseudo terminal
m,s = os.openpty()
stdin = os.fdopen(s, 'r', 0)
stdout = os.fdopen(s, 'w', 0)

# Remember olt attrs for restoration later on
tcattr = termios.tcgetattr(stdin.fileno())

# Set pseudo terminal in raw mode
tty.setraw(stdin.fileno())

# Write something on the slave side of the pseudo terminal
stdout.write('test\n')

# Call setraw again. (for no reason) But it hangs here...
tty.setraw(stdin.fileno())

这段代码有问题,还是 OS X 的行为不同?过去它可以工作,但我们代码中的一些细微变化使它现在在 OS X 中阻塞......

4

0 回答 0