Linux

我可以使用 xterm 讀取/寫入 pts 而不產生另一個程序(例如 shell)嗎?

  • February 6, 2013

我有一個讀取和寫入偽終端的程序。我想打開 xterm 並讓它打開一個偽終端並讓它保持打開狀態,這樣我就可以與這個程序通信而無需創建另一個程序。

現在我使用以下技巧。我創建了一個簡單的程序:

void main() {while(1);}

然後我在這樣的 xterm 視窗中打開它:

xterm ~/a.out

然後我可以寫入另一個程序並在 xterm 視窗上讀取它的輸出。有沒有什麼辦法可以做到這一點而無需 xterm 產生一些無用的程序?

編輯:我試圖與之通信的過程是在 Bochs 模擬器中執行的作業系統。我正在嘗試將仿真係統上的串列埠與主機系統上的偽終端連接。我在 Bochs 配置文件中指定特定的偽終端,如下所示:

com1: enabled=1, mode=term,dev=/dev/pts/4

恐怕你不能——這實際上是bochsrc手冊頁中推薦的方式。如果您擔心額外的過程,您可以生成它而不是瑣碎的循環:

#include <stdio.h>
#include <unistd.h>

int main(void)
{
   printf("tty:  %s\n", ttyname(0));
   while (1)
       sleep(60);
   return 0;
}

您將獲得 tty 名稱並sleep()確保您不會在瑣碎的繁忙循環中浪費寶貴的 SPU 時間。您也可以使用pause()代替sleep().

或者你可以給 Xterm 打更新檔,畢竟它是開源的。

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