私はLinuxシステムでC言語でコーディングしています。 USBフラッシュドライブを挿入して、dev/dev/sdcと/ dev/sdc1にdevノードを作成させ、/ dev/sdcが現れるときにのみアクションを取らせます。私が行ってきたことは、これをCアプリケーションの待ちループとみなし、devノードがudevデーモンによって作成されるのを待っています。何かのように次のようUSBフラッシュドライブの挿入のためのunix/linux devノード作成の検出またはテスト方法
if(/* /dev/sdc exists */)
{
do_something();
}
else
{
wait();
}
私の最初の問題であり、どのようなCライブラリ関数の値を返すために、私の場合は()のテストに行くことができる「は/ dev/sdcのが存在します。」私の2番目の問題は、私は単にこれを間違って近づけていますか?私はudevモニタ構造を使ってこれをまっすぐに検出するべきでしょうか?
私はこれを試して、それは動作するようです。 eglibc 2.10ライブラリの場合、 'if(S_ISBLK(s.st_mode)){ /*ファイルが存在し、ブロックデバイスです。 */ } ' 唯一の調整はマクロ名でした。 もう一度お世話になります。 – Mark