【问题标题】:What does the "s" mean in the structure?结构中的“s”是什么意思?
【发布时间】:2011-06-25 14:24:12
【问题描述】:

这是一个简单的问题。 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
};

谢谢。

【问题讨论】:

  • 可能用于 sockaddr?

标签: c unix network-programming posix


【解决方案1】:

“sin”在此上下文中代表“Socket Internet”。

【讨论】:

    【解决方案2】:

    sin 重复sockaddr_in 结构的名称,即Socket INternet。

    【讨论】:

      【解决方案3】:

      这来自伯克利,当时 LSD 仍然合法。他们的命名选择非常明显:/

      除了开玩笑,这可以追溯到非常早期的 K&R C,结构成员没有自己的命名空间。这要求您为不会与全局命名空间中的标识符冲突的结构成员提供不同的名称。痛苦。常用的方法是在名称前加上结构名称的缩写。

      因此“sockaddr_in”变成了“sin”。

      请注意今天枚举仍然存在这个问题,而不是通常以相同的方式解决。

      【讨论】:

      • 谢谢,这很有说服力。顺便说一句,LSD 是什么?
      • 一种合成药物,可实现无动力持续飞行。 en.wikipedia.org/wiki/Lsd
      • 谢谢大家,现在我知道的太多了。 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-15
      • 2020-06-06
      • 1970-01-01
      • 2022-06-10
      • 2011-09-27
      • 1970-01-01
      • 2018-05-02
      相关资源
      最近更新 更多