gpt4 book ai didi

c - 为什么 getaddrinfo 需要 3 个 header ?

转载 作者:太空狗 更新时间:2023-10-29 12:32:22 28 4
gpt4 key购买 nike

每当我看到使用 getaddinfo() 时,我都会看到它与 3 个 header 一起出现:

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>

此外,the documentation将此函数与其他 2 个函数组合在一起,并列出相同的 3 个标题。为什么 getaddrinfo() 需要 3 个 header ——或者至少,我们如何才能确定哪些是函数实际需要的?

最佳答案

正如您在问题中引用了文档,答案是您应该始终对接口(interface)的记录方式进行编码。由于记录需要这三个 header ,因此在使用接口(interface)时应包含这些 header 。

关于细节,getaddrinfo() API 在 <netdb.h> 中定义头文件,但该头文件定义了一些依赖于 <sys/socket.h> 的其他结构和 API这取决于 <sys/types.h> .

您可能认为这很愚蠢,但它至少有文档记录,而且您知道在哪里可以找到文档。因此,解决这些依赖关系比在具有此类依赖关系但未能记录它们的项目中容易得多。对于文档不完善的系统(甚至文档完善的系统),使用自包含的头文件通常更容易,但 UNIX 和 Linux 是相当古老且稳定的系统,它们倾向于遵循“不会坏,不会坏”的原则修复”规则。

关于c - 为什么 getaddrinfo 需要 3 个 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23050619/

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