1

C プログラムを使用して COM ポートを動的に検出できる API、システム コール、関数 (Linux の場合) があるかどうか教えてください。 API、システム コール、または C プログラムの関数を使用して、その COM ポートにアクセスします。

4

2 に答える 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て、すぐに反応できるようにします。stdbufudevadm によって提供されるバッファリングを回避するには、ラップインが必要です。

于 2013-04-03T06:14:21.540 に答える