Linux
我可以使用 xterm 讀取/寫入 pts 而不產生另一個程序(例如 shell)嗎?
我有一個讀取和寫入偽終端的程序。我想打開 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 打更新檔,畢竟它是開源的。