[解決済み] C言語でファイルが存在するかどうかを確認する最も良い方法は何ですか?
2022-03-20 07:54:31
質問
単純にファイルを開こうとする以外に良い方法はありますか?
int exists(const char *fname)
{
FILE *file;
if ((file = fopen(fname, "r")))
{
fclose(file);
return 1;
}
return 0;
}
解決方法は?
を調べます。
access()
関数があります。
unistd.h
. この関数は、次のように置き換えることができます。
if( access( fname, F_OK ) == 0 ) {
// file exists
} else {
// file doesn't exist
}
を使用することもできます。
R_OK
,
W_OK
および
X_OK
の代わりに
F_OK
を使用すると、存在ではなく、読み取り許可、書き込み許可、実行許可(それぞれ)をチェックし、それらのいずれかを一緒にORすることができます(つまり、読み取りと書き込みの両方をチェックする
と
を使用した書き込み許可
R_OK|W_OK
)
更新情報
: ただし、Windowsでは
W_OK
は書き込み許可を確実にテストすることができます。なぜなら、アクセス関数はDACLを考慮しないからです。
access( fname, W_OK )
は、ファイルに読み取り専用属性が設定されていないため、0(成功)を返すかもしれませんが、それでもファイルへの書き込み権限がない可能性があります。
関連
-
g++が内部・外部コマンドソリューションとして認識されない、MinGWを初めて使うときの落とし穴
-
initializer element is not constant "というエラーが表示されるのですが?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] Pythonでホームディレクトリを取得するための正しいクロスプラットフォームな方法は何ですか?
-
[解決済み] GitでCRLF(キャリッジリターン、ラインフィード)を処理するための戦略とは?
-
[解決済み] while ( !feof (file) ) 」は、なぜいつも間違っているのですか?
-
[解決済み] 標準C++/C++11,14,17/Cを使用してファイルが存在するかどうかを確認する最速の方法?
-
[解決済み] .aファイル、.soファイルとは何ですか?
-
[解決済み] Node.jsのパスがファイルかディレクトリかをチェックする。
-
[解決済み】Javaでユーザーのホームディレクトリを見つけるための最良の方法は何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
_CRT_SECURE_NO_WARNINGS エラーメッセージ、解決方法
-
[解決済み] mallocで文字列を確保する
-
[解決済み] Xcode - 警告。C99 では関数の暗黙の宣言は無効です。
-
[解決済み] C言語で%sを正しく使う - 超基本レベル
-
[解決済み] 配列の場合、なぜ a[5] == 5[a] になるのでしょうか?
-
[解決済み] mallocとcallocの違い?
-
[解決済み] 標準C++/C++11,14,17/Cを使用してファイルが存在するかどうかを確認する最速の方法?
-
[解決済み] char s[]とchar *sの違いは何ですか?
-
[解決済み] .aファイル、.soファイルとは何ですか?
-
[解決済み] なぜ16進数には0xがつくのですか?