Aquí hay una pregunta simple. ¿Cuál es el significado de la letra inicial “s” en el sin_family, sin_port, sin_addr y sin_zero?
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
};
Gracias.
Esto viene de Berkeley, cuando el LSD todavía era legal. Muy obvio en sus elecciones de nombres :/
Bromas aparte, esto se remonta a principios de K&R C, donde los miembros de la estructura no tenían su propio espacio de nombres. Lo que requería que creara nombres distintos para los miembros de la estructura que no chocarían con los identificadores en el espacio de nombres global. Doloroso. Prefijar los nombres con una abreviatura del nombre de la estructura era el enfoque común.
Por lo tanto, “sockaddr_in” se convierte en “sin”.
Tenga en cuenta cómo las enumeraciones todavía tienen este problema hoy en día, no inusualmente resuelto de la misma manera.
sin
está repitiendo el nombre del sockaddr_in
estructura, es decir Sbillete ENinternet
“sin” significa “Socket INternet” en este contexto.
probablemente por sockaddr?
– Benoit
11 de febrero de 2011 a las 14:27