我在 Mac OS 上的 Python 中創建了一個偽終端對,然后嘗試獲取它們的名稱。
import os
import pty
master, slave = pty.openpty()
print(os.ttyname(slave))
print(os.ttyname(master))
我可以得到從屬設備,但 Python 在嘗試得到主設備時崩潰。
$ python --version
Python 3.9.10
$ python shim/tunnel.py
/dev/ttys009
Traceback (most recent call last):
File "/Users/tamlyn/projects/shim/tunnel.py", line 7, in <module>
print(os.ttyname(master))
OSError: [Errno 34] Result too large
為什么會這樣?
uj5u.com熱心網友回復:
pty.openpty呼叫os.openpty
os.openpty()打開一個新的偽終端對。
pty分別回傳和的一對檔案描述符(主、從)tty。新的檔案描述符是不可繼承的。對于(稍微)更便攜的方法,請使用 pty 模塊。
主端僅由檔案描述符表示,而從端由 /dev 中的檔案表示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/440604.html
