同じUSBシリアルコンバータに2つ以上のプログラム

同じUSBシリアルコンバータに2つ以上のプログラム

RS-485-USBコンバータを介してLinux PCに接続された10個のRS-485デバイスネットワークがあるとします。

/dev/ttyUSB0には、シリアルコンバータと対話するCプログラムがすでにあります。

私の質問は、2つ以上のプログラムが同じ/ dev / ttyUSB0と対話したときにどうなりますか?

Linuxは/dev/ttyUSBを1つのプログラムでのみ使用するように自動的にロックしますか?

答え1

つまり、両方のプログラムが正しく動作しません。両方のプログラムの出力が結合され、シリアルポートに送信されます。シリアルポートからの入力は1つのプログラムでのみ表示できます(一部の入力はランダムにプログラムの1つに移動し、一部の入力はランダムに別のプログラムに移動します)。

したがって、通常、シリアルポート(従来はuucp、最近はpppd、およびターミナルエミュレータ)を使用するプログラムが一種のロックを実装しました。事前設定されたいくつかのグローバルディレクトリ(/var/lockなど)にあるロックファイルを使用する推奨ロック(必須ではありません)。

関連情報