bindresvport (3)
Leading comments
Copyright (C) 2007, Michael Kerrisk <mtk.manpages@gmail.com> and Copyright (C) 2008, Linux Foundation, written by Michael Kerrisk <mtk.manpages@gmail.com> %%%LICENSE_START(VERBATIM) Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire r...
NAME
bindresvport - bind a socket to a privileged IP portSYNOPSIS
#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 allocated.
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
For an explanation of the terms used in this section, see attributes(7).Interface | Attribute | Value |
bindresvport() | Thread safety |
glibc >= 2.17: MT-Safe
glibc < 2.17: MT-Unsafe |
The bindresvport() function uses a static variable that was not protected by a lock before glibc 2.17, rendering the function MT-Unsafe.