0
#include <arpa/inet.h>

char buf[INET6_ADDRSTRLEN] = {};
int af = AF_INET;
unsigned char addr[4] = {0x7f, 0x0, 0x0, 0x1};

printf("Address: %s\n", inet_ntop(af, addr, buf, sizeof buf));

传递unsigned char数组inet_ntop()调用是否有效?上面的代码有效,但手册页说 API 在第二个参数中需要网络地址结构。

4

1 回答 1

0

我看到一种实现 unsigned long 用作struct in_addr addr. 如果您在unsigned long不是 4 个字节的系统上编译 - 我可以预见到麻烦。struct in_addr如果一个系统对than有更严格的对齐要求char [],我可以再次预见到麻烦。

最后,您似乎正在寻找确保这个弱代码在未来可以正常运行的保证。祝你好运。

于 2020-02-06T20:42:48.230 回答