UNIX 网络编程中的前缀是什么意思?

What does the prefixes mean in UNIX NETWORK PROGRAMMING?

当我阅读 Unix 网络编程 一书时,有许多套接字 apis/types 具有 sin_addrsin 这样的前缀,inet_addrinet,以及 in_addr_tin。这些前缀实际上是什么意思,即全名是什么?

我相信在早期结构成员必须是唯一的。对两个不同结构中的成员使用相同的名称失败。对于帮助使用 C 结构和预处理器宏的汇编宏,这仍然(并且一直是)正确。

因此,过去的结构和常量使用通常从结构名称或上下文派生的前缀。例如。 struct addressinfo 使用前缀 ai,struct sockaddr 使用 sa,struct sockaddr_in 使用 sin 等等。

为每个成员使用唯一的名称允许对 C 和 asm 代码使用相同的名称,这使得两种语言的代码阅读和编写更加容易。切换语言时无需脑子切换曲目。