草庐IT

c++ - 错误代码 : how to set and check errno

我试图了解在Linux上调用设置errno的C函数时我应该使用什么类别。我不确定所有可能的错误代码是否由POSIX定义,所以我很想使用system_category。但我想稍后在我的代码中处理通用条件,所以我想做这样的事情:std::error_codeec;some_func(some_path,ec);if(ec){if(ec==std::errc::file_exists){//specialhandling}returnec;}要在some_func()中设置错误代码,我希望这样进行:ec.assign(EEXIST,std::system_category());主要基于这个

c sendto函数在linux2.6.29中设置 “network is unreachable” errno

我遇到了类似的问题sendtofunctionsetting"networkisunreachable"errno和(不太像)UDPBroadcastsendtofailed:“networkisunreachable”onlinux2.6.30但由于这个问题没有得到解答并且已经很老了,我试着在这里重申它们并进行更多澄清,希望得到答案。我有一个UDP服务器和客户端,其中客户端广播事件消息,服务器捕获它们(代码如下)。当我在ubuntu14.04、16.04、fedora6等几个不同的桌面linux上运行它们时......它们工作正常。但是当我尝试从ltib运行它们时,在mpc8308板

c sendto函数在linux2.6.29中设置 “network is unreachable” errno

我遇到了类似的问题sendtofunctionsetting"networkisunreachable"errno和(不太像)UDPBroadcastsendtofailed:“networkisunreachable”onlinux2.6.30但由于这个问题没有得到解答并且已经很老了,我试着在这里重申它们并进行更多澄清,希望得到答案。我有一个UDP服务器和客户端,其中客户端广播事件消息,服务器捕获它们(代码如下)。当我在ubuntu14.04、16.04、fedora6等几个不同的桌面linux上运行它们时......它们工作正常。但是当我尝试从ltib运行它们时,在mpc8308板

[Centos7 yum源报错] repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found 解决方案

前言:用公司的ECS yum方式安装JDK1.8,出现yum源找不到的问题,具体报错如下:http://yum.tbsite.net/epel/7/x86_64/repodata/repomd.xml:[Errno14]HTTPError404-NotFoundTryingothermirror.一、直接替换成阿里云的yum源的方法(对我无效)替换Centos-Base.repo前可以备份一下cp/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.bak下载阿里云的yum源并替换wget-O/etc/yum.re

c - pthreads 函数是否在内部设置了 errno?

在下面的代码中,我调用pthread_join()并将线程ID设为self。结果是它返回错误号35。同样,我试图用perror打印。但它正在显示“成功”。我的疑问是库/系统调用是否需要为任何错误明确设置errno或者我是否遗漏了什么?#include#include#include#include#include#include#defineDEATH(mess){perror(mess);exit(errno);}staticvoid*threadFunc(void*arg){void*res;printf("sleepingfor2sec...\n");sleep(2);char*

c - pthreads 函数是否在内部设置了 errno?

在下面的代码中,我调用pthread_join()并将线程ID设为self。结果是它返回错误号35。同样,我试图用perror打印。但它正在显示“成功”。我的疑问是库/系统调用是否需要为任何错误明确设置errno或者我是否遗漏了什么?#include#include#include#include#include#include#defineDEATH(mess){perror(mess);exit(errno);}staticvoid*threadFunc(void*arg){void*res;printf("sleepingfor2sec...\n");sleep(2);char*

c++ - 用户定义的 errno 范围值(POSIX 或特定于 Linux)

如果可能,针对POSIX的问题,其他针对Linux特定平台的问题:是否有用户定义的errno值?(对于信号SIGUSR1和SIGUSR2)如何找到系统未使用的errno值?(负值?)如何预防strerror()break?(在errnum符号之前检查?)我的代码open()一个资源并通知另一个对象。如果发生故障(成功为零),通知Event会传送系统errno。但是也可以在我的代码中检测到失败,例如如果(计数>=大小)。我想重用字段Event::errnum来传达这个失败。因此,我的用户定义的故障代码不应与系统定义的errno值重叠。我找到了errnorange9000–11000res

c++ - 用户定义的 errno 范围值(POSIX 或特定于 Linux)

如果可能,针对POSIX的问题,其他针对Linux特定平台的问题:是否有用户定义的errno值?(对于信号SIGUSR1和SIGUSR2)如何找到系统未使用的errno值?(负值?)如何预防strerror()break?(在errnum符号之前检查?)我的代码open()一个资源并通知另一个对象。如果发生故障(成功为零),通知Event会传送系统errno。但是也可以在我的代码中检测到失败,例如如果(计数>=大小)。我想重用字段Event::errnum来传达这个失败。因此,我的用户定义的故障代码不应与系统定义的errno值重叠。我找到了errnorange9000–11000res

c - 在 Linux 上,当使用 C 执行与端口 0(选择一个随机端口)的套接字绑定(bind)时,我得到 errno 98,Address already in use。这怎么可能?

因此,我们有一个长期存在的商业产品,它已经很成熟,我以前从未见过这种类型的问题。我们使用客户端程序向服务器发送数据。有时,由于客户环境中的防火墙,我们允许最终用户指定要绑定(bind)的出站端口范围,但是,在我看到的这个特定问题中,我们没有这样做,而是使用端口0执行绑定(bind)。从我读过的所有内容来看,这意味着选择一个随机端口。但我不知道的是,这对内核/操作系统意味着什么。如果我要求一个随机端口,它怎么可能已经在使用中了?严格来说,只有srcip/srcport&dstip/port的唯一配对才能使连接唯一。我相信如果与另一个目标ip通信,可以使用相同的端口,但也许这与这里无关。此

c - 在 Linux 上,当使用 C 执行与端口 0(选择一个随机端口)的套接字绑定(bind)时,我得到 errno 98,Address already in use。这怎么可能?

因此,我们有一个长期存在的商业产品,它已经很成熟,我以前从未见过这种类型的问题。我们使用客户端程序向服务器发送数据。有时,由于客户环境中的防火墙,我们允许最终用户指定要绑定(bind)的出站端口范围,但是,在我看到的这个特定问题中,我们没有这样做,而是使用端口0执行绑定(bind)。从我读过的所有内容来看,这意味着选择一个随机端口。但我不知道的是,这对内核/操作系统意味着什么。如果我要求一个随机端口,它怎么可能已经在使用中了?严格来说,只有srcip/srcport&dstip/port的唯一配对才能使连接唯一。我相信如果与另一个目标ip通信,可以使用相同的端口,但也许这与这里无关。此