Ecco una semplice domanda. Qual è il significato della lettera principale ” s ” in sin_family, sin_port, sin_addr e 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 };
Grazie.
Questo viene da Berkeley, quando l’LSD era ancora legale. Quindi molto ovvio nelle loro scelte di denominazione: /
A parte gli scherzi, questo risale ai primissimi K & R C dove i membri della struttura non avevano il loro spazio dei nomi. Il che ha richiesto di creare nomi distinti per i membri della struttura che non collidessero con gli identificatori nello spazio dei nomi globale. Doloroso. Il prefisso dei nomi con un’abbreviazione del nome della struttura era l’approccio comune.
Quindi “sockaddr_in” diventa “peccato”.
Nota come le enumerazioni continuano ad avere questo problema oggi, non atipicamente risolto allo stesso modo.
sin
sta ripetendo il nome della struttura sockaddr_in
, cioè S ocket IN ternet.
“sin” sta per “Socket INternet” in questo contesto.