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
指向 FILE 结构的指针。Pointer to FILE structure.

备注Remarks

clearerr 函数为 stream 重置错误指示符和文件尾指示符。The clearerr function resets the error indicator and end-of-file indicator for stream. 不会自动清除错误指示符;设置指定流的错误指示符后,在调用 clearerrfseekfsetposrewind 前,将继续在该流上执行操作以返回错误值。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.

如果 streamNULL,则将调用无效的参数处理程序,如参数验证中所述。If stream is NULL, the invalid parameter handler is invoked, as described in Parameter Validation. 如果允许执行继续,则该函数将 errno 设置为 EINVAL 并返回。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
clearerr <stdio.h><stdio.h>

有关其他兼容性信息,请参见“简介”中的 兼容性For additional compatibility information, see Compatibility in the Introduction.

示例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/O Stream I/O
_eof _eof
feof feof
ferror ferror
perror、_wperrorperror, _wperror