假终端上的tty.setraw在OS X中挂起

时间:2012-12-06 09:38:28

标签: python macos posix pty

这是一个在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中阻止......

0 个答案:

没有答案