Le 2ème argument du prototype getnameinfo demande un type socklen_t mais sizeof utilise size_t. Alors, comment puis-je obtenir socklen_t?getnameinfo spécifie socklen_t
Prototype:
int getnameinfo(const struct sockaddr *restrict sa, socklen_t salen,
char *restrict node, socklen_t nodelen, char *restrict service,
socklen_t servicelen, int flags);
Exemple:
struct sockaddr_in SIN;
memset(&SIN, 0, sizeof(SIN)); // This should also be socklen_t ?
SIN.sin_family = AF_INET;
SIN.sin_addr.s_addr = inet_addr(IP);
SIN.sin_port = 0;
getnameinfo((struct sockaddr *)&SIN, sizeof(SIN) /* socklen_t */, BUFFER, NI_MAXHOST, NULL, 0, 0);
Cela donnera erreur compilateur:
socklen_t VAR;
getnameinfo((struct sockaddr *)&SIN, &VAR, BUFFER, NI_MAXHOST, NULL, 0, 0);
est 'sizeof' par lui-même causer un problème? –
Obtenez-vous une erreur de compilation? –
Pas de problème ou d'erreur de compilation mais je suppose que si getnameinfo demande socklen_t je ne devrais pas passer size_t ... –