标头<linux / in.h>和<netinet / in.h>之间的实际区别是什么?

jasonkim:

据我观察,两个库都包含90%以上的完全相同的代码。当我在示例程序中声明它们时,不会发生魔术。即使它们位于单独的目录中,我也不太了解它们的区别,有人可以帮我分解一下吗?

另外:我尝试在sys / socket.h之上声明linux / in.h,编译器嗡嗡作响,如“找不到sa_family_t的指定列表”,这意味着sa_family_t未在linux / in.h的范围内定义,如果以这种方式呼叫...

然后我为netinet / in.h尝试了同样的东西,好了,不管声明在哪里,它都可以工作。

R .. GitHub停止帮助ICE:

linux/*.h头真的意味着内部内核使用,如果今天的Linux正在创建中,这些文件甚至没有下存在/usr/include但是在早期,许多用户空间libc(当时为libc4和libc5)都依赖Linux标头来定义用于用户空间的类型,常量,结构等,因此它们netinet/in.h包含#include <linux/in.h>相同或相似的内容,并且开始了可爱的传统。如今,linux树中唯一应用于用户空间应用程序的标头是与在较低级别支持特定硬件(例如Linux控制台,帧缓冲区,video4linux等)相关的一些东西。

简而言之,您应该使用netinet/in.h(POSIX指定的标准标头)并假装从未见过linux/in.h:-)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我们是否需要同时包含<netinet / in.h>和<arpa / inet.h>标头?它们之间有什么区别?

标头linux / magic.h和linux / posion.h做什么?

.h 和 .cpp 文件之间的真正区别是什么?

为什么 HTTP Upgrade: 标头在 Apache 中同时包含 h2 和 h2c?

Linux中unistd.h和sys / types.h之间的区别

Linux Asynch IO-aio.h和libaio.h之间的区别

linux / if.h和net / if.h有什么区别?

Mac OS,LLVM 3.7和缺少的math.h标头

编译clang的<noreturn.h>和Windows标头时的declspec错误

使用Selenium从标头(<H> </ H>)中获取数据

将<netinet / in.h>协议转换为名称?

我不了解inet / netinet / in.h的宏

$ project和$ group之间的实际区别是什么?

打印和返回之间的实际区别是什么

mongo和mongod之间的实际区别是什么?

Mixins和Java继承之间的实际区别是什么?

“ ArrayList <A>”和“ ArrayList <?extends A>”之间的实际区别是什么?

AsyncIterable和Observable之间的实际区别是什么?

`command`和$(command)之间的实际区别是什么?

SOAP安全标头和SOAP标头之间的区别

如何使<h1>标头保持在<h2>标头的顶部?

C中<linux / crc32.h>和<zlib.h>的crc32()实现之间的区别

使用BeautifulSoup在两个h2标头之间获取文本

linux / if.h和net / if.h有什么问题?

chown的-H和-L选项之间有什么区别?

头节点和其他节点之间的区别是什么?

Ubuntu基本更新中的Linux通用标头和驱动程序是什么?

Android Studio-将共享库(.so)文件和标头(.h)文件添加到项目

如何计算文件夹中所有标头和源文件中的所有代码行?* .cpp * .h