在程序中,我们需要打印错误信息可以使用perror函数,此函数会将上一个位置发生的错误原因输出到标准设备输出(stderr)中,函数原型如下:
#include <stdio.h> void perror(const char *s);
perror函数的一个参数s是字符串,用于输出你想要输出的错误信息,在s之后,会默认输出errno对应的错误信息。errno是库函数中默认提供的用于记录错误类型的变量,每个errno的错误码对应一条错误信息。
下面是一个使用perror函数的示例。
#include <iostream>
#include <fcntl.h>
#include <unistd.h>
using namespace std;
int main() {
int fd;
fd = open("/home/test/kk.cpp",O_RDONLY);
if(fd < 0){
perror("error");
cout<<errno<<endl;
exit(-1);
}
close(fd);
}
在main函数中,我们使用open函数打开一个并不存在的文件,会产生一个错误,此 错误会通过perror进行输出,我们随后又输出了errno错误码。上述程序执行结果如下:
错误码为2。一般情况下,如果我们不知道一个错误对应的是什么错误,可以使用linux系统中提供的errno命令来查看。在centos系的系统中,需要安装moreutils包来使用errno命令。
yum install moreutils
执行如下命令
errno -l
显示了对应的错误信息和错误码。