clearerrclearerr

重置流的错误指示符。Resets the error indicator for a stream. 提供此函数的一个更安全的版本;请参阅 clearerr_sA more secure version of this function is available; see clearerr_s.

语法Syntax

void clearerr(
   FILE *stream
);

参数Parameters

指向文件结构。stream Pointer to FILE structure.

备注Remarks

Clearerr函数重置错误指示器和的文件尾指示器The clearerr function resets the error indicator and end-of-file indicator for stream. 错误指示符不自动清除;设置指定的流的错误指示器后,该流上继续执行操作来返回之前的错误值clearerrfseekfsetpos,或rewind调用。Error indicators are not automatically cleared; once the error indicator for a specified stream is set, operations on that stream continue to return an error value until clearerr, fseek, fsetpos, or rewind is called.

如果NULL,则调用无效参数处理程序,如中所述参数验证If stream is NULL, the invalid parameter handler is invoked, as described in Parameter Validation. 如果允许执行继续,此函数将errnoEINVAL并返回。If execution is allowed to continue, this function sets errno to EINVAL and returns. 有关详细信息errno和错误代码,请参阅errno 常量For more information on errno and error codes, see errno Constants.

提供此函数的一个更安全的版本;请参阅 clearerr_sA more secure version of this function is available; see clearerr_s.

要求Requirements

例程Routine 必需的标头Required header
clearerrclearerr <stdio.h><stdio.h>

有关其他兼容性信息,请参阅 兼容性For additional compatibility information, see Compatibility.

示例Example

// crt_clearerr.c
// This program creates an error
// on the standard input stream, then clears
// it so that future reads won't fail.

#include <stdio.h>

int main( void )
{
   int c;
   // Create an error by writing to standard input.
   putc( 'c', stdin );
   if( ferror( stdin ) )
   {
      perror( "Write error" );
      clearerr( stdin );
   }

   // See if read causes an error.
   printf( "Will input cause an error? " );
   c = getc( stdin );
   if( ferror( stdin ) )
   {
      perror( "Read error" );
      clearerr( stdin );
   }
   else
      printf( "No read error\n" );
}

n

      nWrite error: No error
Will input cause an error? n
No read error

请参阅See also

错误处理Error Handling
流 I/OStream I/O
_eof_eof
feoffeof
ferrorferror
perror、_wperrorperror, _wperror