$ cd glibc-2.23
$ grep -ErI --include='*.c' '= *f?put([cs]|char)\>' |wc -l
1
$ grep -ErI --include='*.c' '[^= ] *f?put([cs]|char)\>' |wc -l
1764
$ man putc
...
RETURN VALUE
fputc(), putc() and putchar() return the character written
as an unsigned char cast to an int or EOF on error.
は、おそらくそれはのputcharの先行と後続のものは成功しない間1または2がunnoticeably失敗のシーケンスに例えばその「十分に可能性は低い」とは?
少なくとも99.9999%の実装では、単に「return suchandsuch」というステートメントがないかもしれません。
または、すべてのバイト(putchar、putc、fputcの場合)の後にエラーチェックを続行すると、パフォーマンスが低下する可能性がありますか?putc、fputc、puts、fputs、putchar(そして多分printf)関数の戻り値を決してチェックする人はいません。どうして?
関連する:http://softwareengineering.stackexchange.com/questions/302730/should-one-check-for-every-little-error-in-c – Downvoter
私は、それが組み合わされていると言っています。それは迷惑ですが、エラーは非常に起こりにくく、「処理できないエラーはチェックしないでください」。しかし、私はそれがパフォーマンスだとは思わない。書き込みエラーをチェックしたい場合や、個々の 'putc'呼び出しがたくさんある場合は、それらのいくつかの戻りエラーをチェックすれば十分ですが、すべてをチェックする必要はありません。 –
Cについての良い質問ですが、私はスタックオーバーフローに関する良い答えに基づいてあまりにも意見としてそれを参照してください。他のSEサイトがどんなものになるかは不明です。 – chux