相关疑难解决方法(0)

如何检查errno的值?

我正在使用系统调用,如果失败,我需要为不同的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 ,在声明中应该怎么做?

c errno system-calls

7
推荐指数
3
解决办法
3万
查看次数

标签 统计

c ×1

errno ×1

system-calls ×1