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など)にあるロックファイルを使用する推奨ロック(必須ではありません)。