C 将超过255个字符的主机名传递给getaddrinfo会导致getaddrinfo失败:内存分配失败为什么?
我目前正在升级我们的软件以支持ipv6,同时我正在将主机名/ip字段扩展到最大主机名大小。在sun文档中,这可能高达1025(netdb.h:#define NI#u MAXHOST 1025-这是建议的主机名分配定义),但当我将超过255的主机名传递给getaddrinfo时,我会得到“getaddrinfo失败:内存分配失败”。我正在一个Sol10盒子上测试。Ideas?NI\u MAXHOST用于getnameinfo(),getaddrinfo()使用MAXHOSTNAMELEN。(请参阅),这似乎几乎是硬编码的——对此你无能为力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。(请参
我不知道这些不同的确切原因,但请参见/了解有关最大主机名长度的一些信息。您别无选择:255个字符的限制是标准限制。让我引用第2.1节: 主机软件必须处理最多63个字符的主机名和 应处理最多255个字符的主机名
你能告诉代码你是在哪里出错的吗?它对较小的主机名有效吗?看起来像是一个一般的Sol10限制,主机名也被限制短,