gpt4 book ai didi

c - inet_ntop 的第二个参数的正确类型/格式是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 04:07:53 27 4
gpt4 key购买 nike

我曾经认为 inet_ntop 的第二个参数应该始终是 struct in_addrstruct in6_addr。但后来我查了一下 POSIX definition :

const char *inet_ntop(int af, const void *restrict src,
char *restrict dst, socklen_t size);

[...] The src argument points to a buffer holding an IPv4 address if the af argument is AF_INET, or an IPv6 address if the af argument is AF_INET6; the address must be in network byte order. [...]

如您所见,函数原型(prototype)和描述都含糊不清。

这是为什么? src 允许/可移植的选择是什么?

最佳答案

它是指向存储在各自 header 中的 IPv4 或 IPv6 的指针 - 因此在 IPv4 的情况下是 4 字节的缓冲区,在 IPv6 的情况下是 16 字节的缓冲区。

struct in_addrstruct in6_addr 是存储此类地址的便捷结构,但您可以使用 unsigned char [4] unsigned char [16],如果需要的话。

关于c - inet_ntop 的第二个参数的正确类型/格式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3583148/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com