HIR-NET Home C言語 運営者 オンラインソフト 運営者著書 CG HIR-NETリンク集

ferrorエフ・エラー関数かんすう
ferror function

語源  fileファイオ errorクローズ(ファイル・エラー)
分類  C/C++標準ライブラリ/関数/入出力関数/ファイルエラー操作関数
名称  ファイルエラー検出関数(file error detecting function)
類似  feof関数
関連  fopen関数, clearerr関数, rewind関数
解説  ferror関数は、ファイルのエラーを検出する関数です。ストリーム*stream のファイル・エラー指示子を検査します。ferror関数により、オープン後のファイルのエラー状態の検出が出来る。ファイル・エラー指示子のエラー状態は clearerr関数で解除できます。

関数原型宣言ヘッダ  <stdio.h>
関数原型宣言例
               ストリーム(非NULL)
                   ↓
int ferror(FILE *stream);
↓
非0:エラー
  0:非エラー
関数返却値
①*stream のファイル・エラー指示子が設定されているときは非0 を返します。
②設定されてなければ 0 を返します。

落とし穴  stream が NULL であった場合の規定はありません。従って、ファイル・オープンの成功有無の判定には ferror関数は使用できません。

関数定義例  この定義例は互換性はありません。一例として示しました。この場合、FILE の flagsメンバの4ビット目がファイル・エラー指示子です。
#include <stdio.h> // FILE

int ferror( // ファイルエラー関数 File Error
FILE *stream) // ストリーム
{
  return stream->flags & 0x0010;
  //[解説]0010(16)==0001 0000(2)
} // ferror


 プログラム例   

ファイル・エラー
ファイル・エラーの一例です。
// ferror1.c

#include <stdio.h> // FILE,ferror,fopen,puts
#include <stdlib.h> // EXIT_SUCCESS


int main(int argc,char *argv[])
{
  FILE *sget; // 入力ストリーム Stream GET
  sget=fopen(argv[1],"r");
  if(ferror(sget))puts("ファイルエラー");
  else            puts("ファイル正常");

  return EXIT_SUCCESS;
} // main
実行結果
>>type ferror1.tes⏎    …… ファイルの内容確認
ファイルが見つかりません.   …… ファイルがない趣旨のOSメッセージ

>>ferror1 ferror1.tes⏎
ファイルエラー

>>type ferror2.tes⏎  …… ファイルの内容確認
○○○                …… ファイルの内容

>>ferror1 ferror2.tes⏎
ファイル正常

>>■





◆リンクは、ご自由にお張りください。

Copyright © 1988-2017 Hirabayashi Masahide  プライバシーポリシー