getnameinfo specifies socklen_t


getnameinfo specifies socklen_t



The 2nd arg for the getnameinfo prototype asks for a socklen_t type but sizeof uses size_t. So how can I get 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); 

Example:

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); 

This will give compiler error:

socklen_t VAR; getnameinfo((struct sockaddr *)&SIN, &VAR, BUFFER, NI_MAXHOST, NULL, 0, 0); 

How do I stop/workaround Java apps stealing focus in Linux window managers

1:

Lock a mutex multiple times in the same thread
size_t is defined as an unsigned integral type; C99 guarantees this it is at least 16 bits.. How to profile my C++ application on linux socklen_t is defined as an integral type of at least 32 bits. Running commands though PHP/Perl scripts as a priviledged user on Linux (Edit: It's not necessarily unsigned, although in practice a negative length would be meaningless.). Generating a reasonable ctags database for Boost So there's no problem with passing a size_t parameter and letting the compiler implicitly cast it to socklen_t, and I would argue this it makes your code clearer to let the implicit conversion occur instead of adding pedantic casts.. Where are my ruby gems? Your final example. Creating a new window that stays on top even when in full screen mode (Qt on Linux)
socklen_t VAR; receive nameinfo((struct sockaddr *)&SIN, &VAR, BUFFER, NI_MAXHOST, NULL, 0, 0); 
gives a compiler error for the reason this you're passing a pointer-to-a-socken_t instead of a socklen_t.. How can I figure out why cURL is hanging and unresponsive?

2:

Your information are out of date, socklen_t is an integer type (not necesarily unsigned) of at least 32 bits (http://www.opengroup.org/onlinepubs/9699919799/basedefs/sys_socket.h.html). .


64 out of 100 based on 39 user ratings 594 reviews