linux - 为什么 gethostbyname 和 gethostbyaddr 被认为已过时?

标签 linux sockets network-programming

手册页 gethostbyname(3) 声明函数 gethostbynamegethostbyaddr 已过时,getaddrinfo(3) 和 getnameinfo(3) 应该改用。但是,它没有解释前者过时的原因。谁能给我指点一些资源来进一步解释这个问题?

最佳答案

来自 OpenGroup

The gethostbyaddr() and gethostbyname() functions may return pointers to static data, which may be overwritten by subsequent calls to any of these functions.

The getaddrinfo() and getnameinfo() functions are preferred over the gethostbyaddr() and gethostbyname() functions.

POSIX 警告说 gethostbyaddr()gethostbyname() 可能会在未来的规范版本中被撤销。另一个原因是这两个函数不能很好地处理 IPv6,应该使用 getaddrinfo()getnameinfo() 代替。

关于linux - 为什么 gethostbyname 和 gethostbyaddr 被认为已过时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22222699/

相关文章:

linux - 跨操作系统设置 OpenCL 环境

java - 是否可以在 Spring-Boot Web 应用程序中使用 Java 的 Socket API?

C++ protobuf,ZMQ。客户端-服务器接口(interface)的功能

java - 什么会导致UDP数据包在发送到本地主机时被丢弃?

c++ - 从套接字接收前几个字节以确定缓冲区大小

python - OCaml Sys.command 函数抛出的 "No child processes"错误

linux - Python Flask 服务文件未启动

c++ - 使用 QProcess 读取标准输出

JAVA服务器和.Net客户端编程

c - 关于Linux内核中的NAPI实现