BINDRESVPORT(3)

πŸ“¦
version 15.1 Β· 2 versions
, in freebsd 15.1

πŸ’– BINDRESVPORT(3) πŸ’–

okay so bestie, this is the Library Functions Manual page for bindresvport(3) β€” and it's literally all about binding a socket to a privileged IP port. iconic behavior, no cap. πŸ’…


🌸 NAME 🌸

bindresvport, bindresvport_sa β€” bind a socket to a privileged IP port 🫢

πŸŽ€ LIBRARY πŸŽ€

Standard C Library (libc, -lc) β€” that's the library, bestie. ✨

✨ SYNOPSIS ✨

#include <sys/types.h>
#include <rpc/rpc.h>

int
bindresvport(int sd, struct sockaddr_in *sin);

int
bindresvport_sa(int sd, struct sockaddr *sa);

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so bindresvport() and bindresvport_sa() are the functions you use to bind a socket descriptor to a privileged IP port β€” that's a port number in the range 0-1023, periodt. πŸ‘‘

If sin is a pointer to a struct sockaddr_in then the appropriate fields in the structure should be defined. Note that sin->sin_family must be initialized to the address family of the socket, passed by sd. If sin->sin_port is β€˜0’ then an anonymous port (in the range 600-1023) will be chosen, and if bind(2) is successful, the sin->sin_port will be updated to contain the allocated port. ✨

If sin is the NULL pointer, an anonymous port will be allocated (as above). However, there is no way for bindresvport() to return the allocated port in this case. 😭

Only root can bind to a privileged port; this call will fail for any other users. so yeah, root energy required, bestie. πŸ‘‘

Function prototype of bindresvport() is biased to AF_INET socket. The bindresvport_sa() function acts exactly the same, with more neutral function prototype. Note that both functions behave exactly the same, and both support AF_INET6 sockets as well as AF_INET sockets. 🧚

πŸ’œ RETURN VALUES πŸ’œ

The bindresvport() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error. 🫢

πŸ’€ ERRORS πŸ’€

  • [EPFNOSUPPORT] β€” if second argument was supplied, and address family did not match between arguments. πŸ’€

The bindresvport() function may also fail and set errno for any of the errors specified for the calls bind(2), getsockopt(2), or setsockopt(2). 😭

🌈 SEE ALSO 🌈

bind(2), getsockopt(2), setsockopt(2), ip(4) β€” go read these too, bestie, iykyk. πŸ“š


xoxo, Debian edition πŸ’– β€” page vibes dated November 22, 1987 πŸŽ€

πŸ“¦ where this page comes from