1
我曾經認爲inet_ntop
的第二個參數應始終爲struct in_addr
或struct in6_addr
。但後來我擡頭看了看POSIX definition:inet_ntop的第二個參數的正確類型/格式是什麼?
const char *inet_ntop(int af, const void *restrict src,
char *restrict dst, socklen_t size);
[...]的SRC參數指向一個緩衝區支持IPv4地址如果AF說法是AF_INET,或者如果IPv6地址af變元是AF_INET6;地址必須是網絡字節順序。 [...]
正如你可以看到函數原型和描述都是模糊的。
這是爲什麼?什麼是src
允許/便攜式選擇?
在這種情況下,只有當IP地址是第一個成員時,'struct in_addr'或'struct in6_addr'纔會起作用。這是POSIX的要求嗎?我找不到這方面的參考。 – schot 2010-08-27 10:36:05
@schot:這是一個很好的觀點 - 我想技術上意味着你需要傳遞這些結構的's_addr'和/或's6_addr'成員的地址。 – caf 2010-08-27 11:38:11
感謝您的回答,我將使用'(6)_addr'成員的類型'in_addr_t'和'uint8_t [16]'。 – schot 2010-08-28 12:05:28