好吧.. 差不多就是这样,在检查我的 errno 变量时,我似乎遇到了“非法搜索”错误。问题是我不知道这意味着什么。
我知道套接字在 unix 中被视为文件,但我看不出这与套接字有什么关系。我正在做的是:
int sck = ::accept(m_socket, (struct sockaddr*)&client_address, (socklen_t*)&address_len);
然后我得到sck = -1和errno = ESPIPE
奇怪的是它是随机发生的。我的意思是,有时代码工作正常,有时它只是抛出一个异常。我正在使用线程,所以这是可以理解的。但我只是想知道什么样的行为使 accept() 调用将 errno 设置为 ESPIPE 以便我可以检查参数。
谢谢纳尔逊·R·佩雷斯