%>

打印错误消息。

语法

void perror(
   const char *message
);
void _wperror(
   const wchar_t *message
);

参数

message
要打印的字符串消息。

备注

perror 函数将错误消息打印到 stderr_wperror_perror的宽字符版本; message_wperror 参数是宽字符字符串。 除此以外,_wperror_perror 的行为完全相同。

默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态

一般文本例程映射

TCHAR.H 例程 _UNICODE_MBCS 未定义 _MBCS 已定义 _UNICODE 已定义
_tperror perror perror _wperror

依次打印 message、冒号、导致错误的最后一个库调用的系统错误消息和换行符。 如果 message 为 null 指针或指向空字符串的指针,则 perror 仅打印系统错误消息。

错误数字存储在变量 errno 中(在 ERRNO.H 中定义)。 通过变量 _sys_errlist 访问系统错误消息,该变量是按错误编号排序的消息数组。 perror 打印适当的错误消息,并将 errno 值用作 _sys_errlist 的索引。 变量 _sys_nerr的值定义为 _sys_errlist 数组中元素的最大数。

若要获得准确的结果,可在库例程返回时出现错误后立刻调用 perror。 否则,后续调用会覆盖 errno 值。

在 Windows 操作系统中,未使用 ERRNO.H 中列出的一些 errno 值。 这些值将保留以供 UNIX 操作系统使用。 有关 Windows 操作系统使用的 errno 值列表,请参阅errno_doserrno_sys_errlist_sys_nerrperror 为这些平台未使用的任何 errno 值打印一个空字符串。

要求

例程 必需的标头
perror <stdio.h> 或 <stdlib.h>
_wperror <stdio.h> 或 <wchar.h>

有关兼容性的详细信息,请参阅 兼容性

C 运行时库的所有版本。

示例

// crt_perror.c
// compile with: /W3
/* This program attempts to open a file named
* NOSUCHF.ILE. Because this file probably doesn't exist,
* an error message is displayed. The same message is
* created using perror, strerror, and _strerror.
*/

#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <share.h>

int main( void )
{
   int  fh;

   if( _sopen_s( &fh, "NOSUCHF.ILE", _O_RDONLY, _SH_DENYNO, 0 ) != 0 )
   {
      /* Three ways to create error message: */
      perror( "perror says open failed" );
      printf( "strerror says open failed: %s\n",
         strerror( errno ) ); // C4996
      printf( _strerror( "_strerror says open failed" ) ); // C4996
      // Note: strerror and _strerror are deprecated; consider
      // using strerror_s and _strerror_s instead.
   }
   else
   {
      printf( "open succeeded on input file\n" );
      _close( fh );
   }
}
perror says open failed: No such file or directory
strerror says open failed: No such file or directory
_strerror says open failed: No such file or directory

另请参阅

进程和环境控制
clearerr
ferror