这是一个简单的问题。 sin_family,sin_port,sin_addr和sin_zero中主要字母“ s ”的含义是什么?
struct sockaddr_in {
short int sin_family; // Address family, AF_INET
unsigned short int sin_port; // Port number
struct in_addr sin_addr; // Internet address
unsigned char sin_zero[8]; // Same size as struct sockaddr
};
感谢。
答案 0 :(得分:33)
这来自伯克利,当LSD仍然合法时。在命名选择中非常明显:/
除了开玩笑之外,这可以追溯到很早的K& R C,其中结构成员没有自己的命名空间。这要求您为结构成员提供不会与全局命名空间中的标识符冲突的不同名称。痛苦。使用结构名称的缩写来对名称进行前缀是常用方法。
因此“sockaddr_in”变成“罪”。
请注意枚举今天仍然存在这个问题,而不是以同样的方式解决这个问题。
答案 1 :(得分:6)
sin
正在重复sockaddr_in
结构的名称,即 S ocket IN ternet。
答案 2 :(得分:5)
“sin”在这种情况下代表“Socket INternet”。