소켓 공부중입니다. sockaddr_un에 대한 질문입니다.

lovejin0309의 이미지

소켓을 공부중에 struct sockaddr_un에 대한 내용이 나와서 /usr/include/sys/un.h를 살펴 보니까 다음과 같은 내용이 있었습니다.

아래 내용중에서 32번째 라인에 있는 " 32 __SOCKADDR_COMMON (sun_);" 는 어떤 역활을 해 주는지요?

 /* Structure describing the address of an AF_LOCAL (aka AF_UNIX) socket.  */
     30 struct sockaddr_un
     31   {
     32     __SOCKADDR_COMMON (sun_);
     33     char sun_path[108];     /* Path name.  */
     34   };
singlet의 이미지

in /usr/include/bits/sockaddr.h:

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

즉, sa_family_t 타입의 sun_family 라는 멤버를 선언해줍니다.