ファイルが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. イントラネットサイト全体に対する読み取りアクセス許可
- 6. RDS読み取りレプリカにアクセス許可を付与
- 7. Android 6.0電話アクセスの読み取り許可チェック
- 8. Podio認証の読み取りアクセス許可
- 9. SonarQube読み取り専用のアクセス許可
- 10. MSysObjectエラーの読み取りアクセス許可がありません
- 11. C#アプリケーションのファイルとフォルダのアクセス許可
- 12. Team Foundation Server読み取り専用アクセス許可
- 13. ファイルのアクセス許可
- 14. MIUIの携帯電話で私のアプリの読み込み自動アクセス許可を読み取る方法
- 15. カスタムアクセス許可を使用してコンテンツプロバイダを読み取っている間にアクセス許可を拒否する
- 16. 連絡先の読み取りと書き込みのアクセス許可
- 17. 角度:スタンドアロンhtmlファイルの読み込みを許可する
- 18. メッセージの受信者に読み取りアクセスを許可するFirebaseルール
- 19. テキストファイルから共有リストのNTFSアクセス許可を読み取る方法
- 20. Androidアドレスを読み取る実行時アクセス許可が動作しない
- 21. SQLサーバー - 読み取り専用のアクセス許可を持つストアドプロシージャを実行
- 22. gitoliteとファイルのアクセス許可
- 23. .emacsファイルのアクセス許可?
- 24. WCFファイルのアクセス許可?
- 25. Apacheファイルのアクセス許可
- 26. WordPress Synologyファイルのアクセス許可
- 27. Google APIファイルのアクセス許可?
- 28. PHP ssh2_scp_sendファイルのアクセス許可
- 29. send_fileとファイルのアクセス許可
- 30. フリップビューデータバインディングとファイルのアクセス許可
私はfopen()を使用しますが、ファイルが読み込み不能かどうか、そしてそれが存在しないかどうかを区別できるようにする必要があります。 –
fopenを使う方が良いでしょう。アクセスはTOCTOU攻撃に対して脆弱です。 (http://en.wikipedia.org/wiki/TOCTOU)。あなたの場合、それがまったく問題であれば。 –
私はこの汚れたコードを呼び出します... – Tobi