bindresvport(3) - phpMan

BINDRESVPORT(3)            Linux Programmer's Manual           BINDRESVPORT(3)

NAME
       bindresvport - bind a socket to a privileged IP port
SYNOPSIS
       #include <sys/types.h>
       #include <netinet/in.h>
       int bindresvport(int sockfd, struct sockaddr_in *sin);
DESCRIPTION
       bindresvport()  is  used  to  bind  a socket descriptor to a privileged
       anonymous IP port, that is, a port number arbitrarily selected from the
       range 512 to 1023.
       If  the  bind(2)  performed by bindresvport() is successful, and sin is
       not NULL, then sin->sin_port returns the  port  number  actually  allo-
       cated.
       sin  can  be NULL, in which case sin->sin_family is implicitly taken to
       be AF_INET.  However, in this case, bindresvport() has no way to return
       the  port  number  actually  allocated.  (This information can later be
       obtained using getsockname(2).)
RETURN VALUE
       bindresvport() returns 0 on success; otherwise -1 is returned and errno
       set to indicate the cause of the error.
ERRORS
       bindresvport()  can  fail  for  any of the same reasons as bind(2).  In
       addition, the following errors may occur:
       EACCES The caller did not have superuser privilege (to be precise:  the
              CAP_NET_BIND_SERVICE capability is required).
       EADDRINUSE
              All privileged ports are in use.
       EAFNOSUPPORT (EPFNOSUPPORT in glibc 2.7 and earlier)
              sin is not NULL and sin->sin_family is not AF_INET.
ATTRIBUTES
   Multithreading (see pthreads(7))
       Before  glibc  2.17, the bindresvport() function uses a static variable
       that is not protected, so it is not thread-safe.
       Since glibc 2.17, the bindresvport() function uses a  lock  to  protect
       static variable, so it is thread-safe.
CONFORMING TO
       Not in POSIX.1-2001.  Present on the BSDs, Solaris, and many other sys-
       tems.
NOTES
       Unlike some bindresvport() implementations,  the  glibc  implementation
       ignores any value that the caller supplies in sin->sin_port.
SEE ALSO
       bind(2), getsockname(2)
COLOPHON
       This  page  is  part of release 3.53 of the Linux man-pages project.  A
       description of the project, and information about reporting  bugs,  can
       be found at http://www.kernel.org/doc/man-pages/.

                                  2013-06-21                   BINDRESVPORT(3)