2

ストリームから読み取りおよび書き込みを行う一部の操作では、ストリームにエラーフラグが設定される場合があります。これは、を使用してテストできます。ferror(stream)これはよくある質問であると確信していますが、考えられるすべてのリストを見つけることができませんでした。 SOまたは一般的なWebでのエラーの原因。ferror()が設定される原因は何ですか?

特に、Minix 3の標準入力でfgets()を実行するときに発生する可能性のあるエラーの原因を探していますが、より一般的なリストも探しています。

4

2 に答える 2

2

考えられるエラーの簡単なリストはありません。ただし、読み取りまたは書き込みを行っているデバイスによっては、次のような問題が発生する可能性があります。

  • デバイスに障害が発生する(短絡、過熱、老朽化など)
  • デバイスがマシンから引き出されている(USBスティック)
  • デバイスの電源がオフになっているか、電源が切れています(外付けディスクドライブ)
  • デバイスが排出されます(CD-ROM)
  • ネットワーク接続が失われました(SAN、NAS)
  • デバイスがいっぱいです(書き込み用のスペースが残っていません)
  • ..。
于 2012-04-12T14:20:37.640 に答える
0

ferror()が設定される原因となるストリームの考えられるエラー条件は何ですか?

いくつかの可能性の1つ:間違った方向のI / O操作を試みると、エラーインジケータが設定されます。

#include <stdio.h>
int main(void) {
  FILE *f = fopen("t", "w");
  if (f) {
    int ch = fgetc(f);
    printf("ch %d\n", ch);
    printf("Error %d\n", ferror(f));
    printf("EOF %d\n", feof(f));
    fclose(f);
  }
}
 

出力

ch -1
Error 1
EOF 0
于 2020-11-23T21:01:26.407 に答える