GNU/Linux >> Linux の 問題 >  >> Linux

Linux 用の仮想シリアル ポート

これには 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」という文字列が表示されます。


Linux
  1. 初心者向けのLinuxターミナルガイド

  2. Linux –仮想端末でキーを交換しますか?

  3. Linux – Raspberrypiシリアルポート?

  1. GNUScreenを使用するためのLinuxのヒント

  2. Linux –シリアルポートを使用してプロセスを見つける方法は?

  3. Linux 用の Windows スタイルの端末ベースのテキスト エディター

  1. Hyper –Linuxに最適なターミナルアプリ

  2. 開発用の Cygwin と Linux 仮想マシンの比較?

  3. Linux の C でのシリアル ポートへの読み取りと書き込み