当经典的 linux c/c++ 软件出现问题时,我们有一个神奇的变量 errno,它为我们提供了刚刚出错的线索。
但是这些错误是在哪里定义的?
让我们举个例子(它实际上是 Qt 应用程序的一部分,因此是 qDebug())。
if (ioctl(file, I2C_SLAVE, address) < 0) {
int err = errno;
qDebug() << __FILE__ << __FUNCTION__ << __LINE__
<< "Can't set address:" << address
<< "Errno:" << err << strerror(err);
....
下一步是查看 errno 是什么,以便我们决定是退出还是尝试解决问题。
所以我们可能会在这一点上添加一个 if 或 switch。
if (err == 9)
{
// do something...
}
else
{
//do someting else
}
我的问题是在哪里可以找到“9”代表的错误?我不喜欢我的代码中那种神奇的数字。
/谢谢