【发布时间】:2012-06-15 11:18:35
【问题描述】:
我使用函数char* inet_ntoa(struct in_addr in), 编写了一个服务器,当我包含标题时
<sys/socket.h> 和<netinet/in.h> ,可以生成带有编译器警告的可执行二进制文件,但是当程序处理来自inet_ntoa 的返回字符串时会发生段错误。但是当我添加标题 <arpa/inet.h>, 时,一切似乎都正常。
怎么了?
【问题讨论】:
-
你调试了吗?通过 valgrind 运行它?
-
manual page 告诉您需要
<arpa/inet.h>,如果您遇到问题,请务必阅读您使用的功能的手册页。 -
我还建议您改用
inet_ntop,因为它可以处理不同的协议(如 IPv6)并且是线程安全的。 -
我猜你没有检查编译器警告信息...