C言語関係掲示板

過去ログ

No.1200 ファイルをオープンする前にファイルの有無をチェックしたい

[戻る] [ホームページ]
No.15693

ファイルの有無
投稿者---あっぷ(2004/07/20 16:08:54)


お世話になります。
ファイルをオープンする前にファイルの有無をチェックしたいですが、どういう式で表せばよいのでしょうか?
辞典でも載っていなかったので。
有無のチェックによりファイルがあった場合は、ファイルオープンする。
無かった場合はエラーを出すという処理で行いたい。
ご教授よろしくお願い申し上げます。



No.15696

Re:ファイルの有無
投稿者---RiSK(2004/07/20 16:56:15)


>ファイルをオープンする前にファイルの有無をチェックしたいですが、どういう式で表せばよいのでしょうか?
>有無のチェックによりファイルがあった場合は、ファイルオープンする。
>無かった場合はエラーを出すという処理で行いたい。

fopen が NULL を返したらファイルがない(かもしれない)と判断できます。
なぜ、オープンする前にファイルがあるか確認しなければならないのでしょうか?


No.15697

Re:ファイルの有無
投稿者---RiSK(2004/07/20 17:05:57)


>fopen が NULL を返したらファイルがない(かもしれない)と判断できます。
前に私が作ったのをコピペ
// 関数名     : IsFileExisting
// 説明       : ファイルが存在するか調べます
// 戻り値の型 : int ファイルが存在する場合は1、存在しない場合は0
// 引数       : const char* pszFile
BOOL IsFileExisting(const char* pszFile)
{
  FILE *pf;

  if ((pf = fopen(pszFile, "r")) == 0) {
    return 0;
  }
  fclose(pf);

  return 1;
}

詳細はC FAQ 19.11を見てください。
私が作ったやつもタイミングによっては問題が生じます。


No.15704

Re:ファイルの有無
投稿者---nop(2004/07/20 19:40:41)


>ファイルをオープンする前にファイルの有無をチェックしたいですが、どういう式で表せばよいのでしょうか?

処理系によっては、
access()関数でファイルの有無を調べることが出来ます。

# 但し、処理系依存なので移植性は損なわれます。
# 素直に、fopen()でNULLが返った時にエラー処理を行う方がよいでしょう。