Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 将超过255个字符的主机名传递给getaddrinfo会导致getaddrinfo失败:内存分配失败为什么?_C_Unix_Network Programming_Ipv6 - Fatal编程技术网

C 将超过255个字符的主机名传递给getaddrinfo会导致getaddrinfo失败:内存分配失败为什么?

C 将超过255个字符的主机名传递给getaddrinfo会导致getaddrinfo失败:内存分配失败为什么?,c,unix,network-programming,ipv6,C,Unix,Network Programming,Ipv6,我目前正在升级我们的软件以支持ipv6,同时我正在将主机名/ip字段扩展到最大主机名大小。在sun文档中,这可能高达1025(netdb.h:#define NI#u MAXHOST 1025-这是建议的主机名分配定义),但当我将超过255的主机名传递给getaddrinfo时,我会得到“getaddrinfo失败:内存分配失败”。我正在一个Sol10盒子上测试。Ideas?NI\u MAXHOST用于getnameinfo(),getaddrinfo()使用MAXHOSTNAMELEN。(请参

我目前正在升级我们的软件以支持ipv6,同时我正在将主机名/ip字段扩展到最大主机名大小。在sun文档中,这可能高达1025(netdb.h:#define NI#u MAXHOST 1025-这是建议的主机名分配定义),但当我将超过255的主机名传递给getaddrinfo时,我会得到“getaddrinfo失败:内存分配失败”。我正在一个Sol10盒子上测试。Ideas?

NI\u MAXHOST用于getnameinfo(),getaddrinfo()使用MAXHOSTNAMELEN。(请参阅),这似乎几乎是硬编码的——对此你无能为力


我不知道这些不同的确切原因,但请参见/了解有关最大主机名长度的一些信息。

您别无选择:255个字符的限制是标准限制。让我引用第2.1节:

主机软件必须处理最多63个字符的主机名和 应处理最多255个字符的主机名


你能告诉代码你是在哪里出错的吗?它对较小的主机名有效吗?看起来像是一个一般的Sol10限制,主机名也被限制短,