C プログラムを使用して COM ポートを動的に検出できる API、システム コール、関数 (Linux の場合) があるかどうか教えてください。 API、システム コール、または C プログラムの関数を使用して、その COM ポートにアクセスします。
質問する
2214 次
2 に答える
7
モデムによっては、USB シリアル ポート デバイスが/dev/ttyUSBn
またはとして表示される場合があります。/dev/ttyACMn
ここで、n
は から始まる番号0
です。
udev
デバイスが挿入または削除されたときに自動的に反応するようにルールを構成できます。
Cで自分でやりたい場合は、netlink(7)
ソケットを利用する必要があります。それらをいじりたくない場合は、おそらくより簡単な方法はudevadm
、udev パッケージ (udevadm はnetlink
内部で使用しています) によって提供されるユーティリティを使用することです。
udevadm monitor --kernel
C プログラムで使用する場合は、次のようにパイプで呼び出すだけです。
stdbuf -o0 udevadm monitor --kernel
ループをセットアップしselect
て、すぐに反応できるようにします。stdbuf
udevadm によって提供されるバッファリングを回避するには、ラップインが必要です。
于 2013-04-03T06:14:21.540 に答える