私はLinuxのAngstromを実行している組み込みデバイスを持っています。私はUSBドライブを検出する必要があります。だから、USBドライブが挿入されると、USBから組み込み機器の内部メモリにデータを自動的にコピーする必要があります。 USBを検出するLinuxでUSBドライブを検出するCプログラム
、私はコードの下に使用しています:
DIR* dir = opendir("/media/sda1/");
if (dir)
{
printf("USB detected\n");
//rest of the code
//to copy data from the USB
}
コピーが行われた後、これは通常、時には動作しますが、私はUSBを除去するが、マウントポイント(SDA1)の名前が残っています。だから、USBを取り外した後、データがコピーされます(sda1がメディアに入っているので)、物理的なUSBが接続されていないのでエラーが表示されます。 USBが接続されているかどうかを検出し、正しく接続されているかどうかを検出する最も良い方法は何ですか?ここではudisks
を使用することはできません。なぜなら、この埋め込みデバイスに使用しているLinux用には使用できないからです。したがって、一般的なlinuxコマンドだけが動作します。
助けてください。おかげ
あなたはudevを取得しますか?もしそうなら、あなたはudevルールで何かをすることができます。 – Joe
USBの物理的なプラグが正しく検出されない可能性があるため、コピー転送が実行された後に、USBをプログラムでアンマウントする可能性があります。 – JTejedor
@JTejedor 'umount/media/sda1'を使って正しくアンマウントしましたが、それでもまだそこに残っていることがあります。なぜ私は別のアプローチを探しているのですか? –