6.1.1.2. Bind System Call

int bind (int sockfd, struct sockaddr *my_addr, socklen_t addrlen);

#define __SOCKADDR_COMMON(sa_prefix) \
  sa_family_t sa_prefix##family

struct sockaddr_in
{
  __SOCKADDR_COMMON (sin_);
  in_port_t      sin_port;
  struct in_addr sin_addr;
  unsigned char  sin_zero [sizeof (struct sockaddr) -
                           __SOCKADDR_COMMON_SIZE -
                           sizeof (in_port_t) -
                           sizeof (struct in_addr)];
};

struct sockaddr_in6
{
  __SOCKADDR_COMMON (sin6_);
  in_port_t       sin6_port;
  uint32_t        sin6_flowinfo;
  struct in6_addr sin6_addr;
  uint32_t        sin6_scope_id;
};