ferror
From cppreference.net
File input/output
| Types and objects | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ヘッダーで定義
<stdio.h>
|
||
|
int
ferror
(
FILE
*
stream
)
;
|
||
指定されたストリームのエラーをチェックします。
目次 |
パラメータ
| stream | - | チェックするファイルストリーム |
戻り値
ファイルストリームでエラーが発生した場合は非ゼロの値、 0 それ以外の場合
例
このコードを実行
#include <stdio.h> #include <stdlib.h> #include <locale.h> #include <wchar.h> int main(void) { char* fname = tmpnam(NULL); FILE* f = fopen(fname, "wb"); fputs("\xff\xff\n", f); // 有効なUTF-8文字シーケンスではない fclose(f); setlocale(LC_ALL, "en_US.utf8"); f = fopen(fname, "rb"); wint_t ch; while ((ch=fgetwc(f)) != WEOF) // UTF-8として読み込もうとすると失敗する printf("%#x ", ch); if (feof(f)) puts("EOF indicator set"); if (ferror(f)) puts("Error indicator set"); }
出力:
Error indicator set