我正在使用系统调用,如果失败,我需要为不同的errnos做不同的事情.
我需要编写看起来像这样的代码:
int res;
res = systemCall();
if (res == -1)
{
if (errno == ENOMSG)
{
doSomething();
}
else
{
doSomethingElse();
}
}
Run Code Online (Sandbox Code Playgroud)
perror没有帮助,因为它只打印值.
至于strerro - 如果它是我需要的,我不是如何使用它,因为在这里它说实际的字符串与错误不同.从手册页引用:"(例如,如果errnum是EINVAL,则返回的描述将是"Invalid argument")".
我正在使用Linux.系统调用:msgsend和msgrcv(https://linux.die.net/man/2/msgrcv).我不确定你问的C库是什么.
我看到我没有很好地解释自己.
语句if(errno == ENOMSG)是否有效?是否有这样的变量errno?基本上我的问题是:if为了测试errno ,在声明中应该怎么做?