あなたが私を助けることを望みます。 デバイスがリムーバブルかどうかを判断しようとしていますが、デバイス名(/ dev/sdc)だけです。実際には、このファイルのフルパスでリムーバブルメディア上またはローカルディスク上のファイルを判断する必要があります。デバイス名でデバイスフラグを取得する
Iは電流> FS-> PWD で検索するようにしようと試みていると私は見つけることができるすべてはここにフラグのセットです: *の電流> FS-> pwd.mnt-> mnt_sb- > s_bdev-> bd_disk->フラグ* リムーバブルデバイスのためのGENHD_FL_REMOVABLEセットが
しかし、私は常にセット同じフラグを取得します(私は理解し、s_bdevが常に同じデバイス(は/ dev/sdaに)を指します)。
これで、mtabを解析して自分のファイルを含むデバイス名(/ dev/sdc)を取得できますが、それでもリムーバブルであるかどうかはわかりません。
block_device構造体をデバイス名で取得する方法はありますか? (例えば、 "ファイル" 構造 "ファイル" 構造に FD =オープン( "名前") FL = fged(FD) ここFLポイントを呼び出すことによって得ることができる)
ありがとう、それは私の問題を解決するようです – Makc
私はこのファイルへの完全なパスのみを持っている場合、この方法を使用して、ブロックデバイスのいずれが私の開いたファイルを含むかを判断する方法。 – Makc
@Makc: 'vfs_stat'を使うと、' dev_t'をブロックデバイスと比較できる 'struct kstat'が得られます。 – Hasturkun