Linux

關閉 PTY 後是否可以重用它的從端?

  • February 20, 2022

從端使用後(open(), read(), write(), close()),主端read()完成並返回 EIO 錯誤。但我期望能夠open()/close()多次從屬端而不中斷主fd。

是否有可能在奴隸之後保持兩端有效close()?當從屬端關閉時,如何保持我的“主”程序執行?我應該重新執行整個grantpt(); unlockpt(); ptsname();序列嗎?

短:沒有

Long:偽終端從連接是連接的一端,就像管道一樣。兩者都是通過核心在使用者程序之間來回傳遞數據的方式。

一旦一端關閉,您將失去連接。ptsnamePOSIX 中的描述說:

失敗時,ptsname()應返回一個空指針。如果 fildes 是無效的文件描述符或文件系統中不存在從設備名稱,則可能會發生這種情況。

一旦你關閉一個文件描述符,它就無效了。

如果你想重用一個連接,你可以做一些變通方法,例如將打開的從文件描述符傳遞給一個新創建的程序,例如,從你編寫的用於管理從文件描述符的伺服器應用程序。

進一步閱讀:

引用自:https://unix.stackexchange.com/questions/290847