これには pty (シリアルポートが「実際のテレタイプ」である「疑似テレタイプ」) を使用できます。一方の端から /dev/ptyp5
を開きます 、次にプログラムを /dev/ttyp5
に添付します; ttyp5
シリアル ポートと同じように動作しますが、/dev/ptyp5 経由ですべての送受信を行います。
/dev/ttys2
というファイルと対話するために本当に必要な場合 、次に古い /dev/ttys2
を移動するだけです ptyp5
からシンボリックリンクを作成する ttys2
まで .
もちろん、ptyp5
以外の数字を使用することもできます。 .すべてのログイン端末も pty を使用するため、重複を避けるために数値の大きいものを選択してください。
ウィキペディアには pty の詳細があります:http://en.wikipedia.org/wiki/Pseudo_terminal
これには socat を使用します:
例:
socat PTY,link=/dev/ttyS10 PTY,link=/dev/ttyS11
@slonik の回答を補足します。
次の手順で socat をテストして仮想シリアル ポートを作成できます (Ubuntu 12.04 でテスト済み)。
ターミナル (ターミナル 0 としましょう) を開いて実行します:
socat -d -d pty,raw,echo=0 pty,raw,echo=0
上記のコードは次を返します:
2013/11/01 13:47:27 socat[2506] N PTY is /dev/pts/2
2013/11/01 13:47:27 socat[2506] N PTY is /dev/pts/3
2013/11/01 13:47:27 socat[2506] N starting data transfer loop with FDs [3,3] and [5,5]
別のターミナルを開き、次のように記述します (ターミナル 1):
cat < /dev/pts/2
このコマンドのポート名は、PC に応じて変更できます。それは前の出力に依存します。
2013/11/01 13:47:27 socat[2506] N PTY is /dev/pts/**2**
2013/11/01 13:47:27 socat[2506] N PTY is /dev/pts/**3**
2013/11/01 13:47:27 socat[2506] N starting data transfer loop with FDs
強調表示された領域で利用可能な番号を使用する必要があります。
別のターミナルを開き、次のように記述します (ターミナル 2):
echo "Test" > /dev/pts/3
ターミナル 1 に戻ると、「Test」という文字列が表示されます。