小编Han*_*ana的帖子

如何检查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万
查看次数

gdb - 执行命令n次

我正在使用 gdb 调试器来运行一个包含循环的程序(让我们坐在 10 中)。当我进入循环时,我不想进入它。我知道我可以在循环之后设置第二个断点,而不是 c (继续)。但我也记得有可能做类似 n 10 (接下来的 10 次)的事情。n 10 不起作用(gdb 并没有说我做错了什么,但它没有达到我的预期)。

一个命令可以运行n次吗?

gdb

6
推荐指数
2
解决办法
8398
查看次数

如何在不修改 Python 中的原始列表的情况下反转列表

我正在尝试通过以下方式使用 reverse() 方法:

>>> L=[1,2,3]
>>> R=L
>>> L.reverse()
>>> L
[3, 2, 1]
>>> R
[3, 2, 1]
Run Code Online (Sandbox Code Playgroud)

为什么它也会反转 R?如何保留原始列表并创建反向列表?

谢谢!

python python-3.x

5
推荐指数
1
解决办法
4291
查看次数

重载std :: exception - what()无法转换const char*

我正在编写我的异常类:

class MyExcept: public std::exception
{
public:
    MyExcept(std::string _msg);
    virtual ~MyExcept() throw();
    virtual const char* what() const throw();

private:
    std::string m_errorMsg;
};


MyExcept::MyExcept(std::string _msg)
: m_errorMsg(_msg)
{
}

MyExcept::~MyExcept() throw()
{
}

const char* MyExcept:: what() const throw()
{
    return m_errorMsg.c_str;
}
Run Code Online (Sandbox Code Playgroud)

我用g ++编译并在函数what()中返回以下错误:

不能将'std :: __ cxx11 :: basic_string <_CharT,_Traits,_Alloc> :: c_str,std :: allocator>'从类型'const char*(std :: __ cxx11 :: basic_string ::)()const'转换为类型'const char*'返回m_errorMsg.c_str;

我做错了什么?谢谢

c++ overloading exception

-1
推荐指数
1
解决办法
628
查看次数

标签 统计

c ×1

c++ ×1

errno ×1

exception ×1

gdb ×1

overloading ×1

python ×1

python-3.x ×1

system-calls ×1