私の質問は次のとおりです。組み込み Linux システムで実行されている C++ のソフトウェアがあります。このソフトウェアには、一部のデータをペンドライブにエクスポートする機能があります。今、私の落とし穴が来ました。一部のユーザーは、キーを変更するために古いペンドライブを使用しようとしました。読み取り/書き込みモードと読み取り専用モードの間。ここで、デバイスが読み取り専用モードになっているかどうかを確認して、アプリケーションでユーザーにフィードバックを表示する方法を知る必要があります。デバイスをマウントする前に読み取り専用ステータスを確認するシステム コールはありますか?
質問する
607 次
1 に答える
4
これを処理する通常の方法は、書き込み用にファイルを開いてから、errno == EACCES
.
ただし、事前に確認する必要がある場合は、
int on_readonly_fs(char const *path)
{
struct statvfs fsinfo;
while (statvfs(path, &fsinfo)) == -1)
if (errno != EINTR)
return -1;
return fsinfo.f_flag & ST_RDONLY;
}
ただし、これはデバイスのマウント後にのみ機能します。
于 2012-09-18T20:26:28.417 に答える