bindresvport — bind a socket to a privileged IP port
#include <sys/types.h> #include <netinet/in.h>
int
bindresvport( |
int | sd, |
struct sockaddr_in ** | sin) ; |
bindresvport
() is used to
bind a socket descriptor to a privileged IP port, that is, a
port number in the range 0-1023.
If in−>sin_port
is 0
then an anonymous port in the range 600 to 1023 be chosen. If
the bind(2) performed by
bindresvport
() is successful,
then sin−>sin_port
returns the port number actually allocated.
sin
can be NULL,
in which case sin−>sin_family
is
implicitly taken to be AF_INET
,
and an anonymous port is allocated (as above). However, in
this case, bindresvport
() has
no way to return the port number actually allocated.
bindresvport
() returns 0 if
it is successful, otherwise −1 is returned and
errno
set to indicate the cause
of the error.
Only root can bind to a privileged port; this call will fail for any other users. In addition, the following error may occur:
sin
is not
NULL and sin−>sin_family
is not AF_INET
.