c - Why socklent_t * is used in accept() in socket programming? -


in c socket programming accept() declaration looks like:

int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen); 

i can understand uses of sockfd, struct sockaddr *addr.

but why have pass address of length of socket, have been socklen_t. because if accept() function needs length can socklen_t. why protype of function declared in such way?

so reason behind using socklen_t * type?

in code that's agnostic address/protocol family of socket it's accepting from, may using generic sockaddr_storage structure hold result. initial value of pointed-to socklen_t size of storage; value after accept returns actual size of resulting peer address. also, address/protocol families af_unix have variable length addresses, if know type may not know size.


Comments

Popular posts from this blog

c++ - Difference between pre and post decrement in recursive function argument -

php - Nothing but 'run(); ' when browsing to my local project, how do I fix this? -

php - How can I echo out this array? -