ファイルがCで読み取りアクセス権を持っているかどうかを確認する方法はありますか?cファイルのアクセス許可を読み取る
5
A
答えて
9
POSIXではaccess(2)
を使用してください。標準Cでは、できることはfopen()
で開き、成功したかどうかを確認することです。
fopen()
もし戻っNULL
、あなたは区別するためにerrno
を使用しようとすることができ(errno == ENOENT
を)「ファイルが存在しない」と(errno == EACCES
)のケースを「アクセス許可が拒否されました」 - 残念ながら、これら2つのerrno
の値のみとPOSIXで定義されていますよく
(POSIX上でさえ、ほとんどの場合、ファイルを開こうとすると、なぜそれが失敗したのかを調べることです。access()
を使用すると明らかな競合状態が発生するためです)。
7
はaccess()機能を使用します。それは存在するが、現在のユーザーにアクセスできない場合、ファイルが存在し、またはEACCES
しない場合
if (access(pathname, R_OK) == 0)
{
/* It's readable by the current user. */
}
errno
はENOENT
に設定されます。詳細なエラーコードについては、the manual pageを参照してください。
8
私はstat()自分自身のファンです。
+0
質問者はファイルのアクセス許可を読む方法を尋ねました。 stat()関数はファイルのパーミッションを返します。 fstat()関数は、オープンされたファイルハンドルを指定して、ファイルのパーミッションを返します。 – bearvarine
関連する問題
- 1. C#TextWriter、ファイルの読み取りを許可する:
- 2. WAMPを使用する:Windows上のファイルのアクセス許可を読み取る
- 3. アクセス許可のあるリモートファイルを読み取る
- 4. プログラムでMSMQキューのアクセス許可を読み取る方法
- 5. MSysObjectエラーの読み取りアクセス許可がありません
- 6. Team Foundation Server読み取り専用アクセス許可
- 7. ファイルのアクセス許可
- 8. アクセスvbaでファイルを読み取る
- 9. PHP ssh2_scp_sendファイルのアクセス許可
- 10. WCFファイルのアクセス許可?
- 11. gitoliteとファイルのアクセス許可
- 12. send_fileとファイルのアクセス許可
- 13. .emacsファイルのアクセス許可?
- 14. フォルダのAndroidの読み取り/書き込みの許可
- 15. C++ - 変更後のファイルのアクセス許可を修正する
- 16. ファイルのアクセス許可を確認する
- 17. NETWORK SERVICEの読み取り権限を許可する方法
- 18. C#アクセス許可とスレッド
- 19. 正しいアクセス許可があってもWordPressでファイルを読み取ることができません
- 20. C#ReadProcessMemory - ポインタへのアクセス/読み取り
- 21. C/C++でlinuxファイルのアクセス権をプログラムで読み取る方法
- 22. ファイルのアクセス許可はディレクトリのアクセス許可を継承しません
- 23. ファイルからデータを読み取るC++
- 24. Windowsでファイルを読み取る - C#ソリューション
- 25. C++でファイル名を読み取る
- 26. C++でファイルを読み取る
- 27. Web用Visual Studio Express 2013でのJSONファイルの読み込みを許可する
- 28. DNNモジュールのアクセス許可 - スーパーユーザーのみ?
- 29. 許可が不十分なために構成ファイルを読み取れない
- 30. PHP書き込みファイルとアクセス許可を設定
私はfopen()を使用しますが、ファイルが読み込み不能かどうか、そしてそれが存在しないかどうかを区別できるようにする必要があります。 –
fopenを使う方が良いでしょう。アクセスはTOCTOU攻撃に対して脆弱です。 (http://en.wikipedia.org/wiki/TOCTOU)。あなたの場合、それがまったく問題であれば。 –
私はこの汚れたコードを呼び出します... – Tobi