기본 콘텐츠로 건너뛰기

라벨이 recvmsg인 게시물 표시

소켓을 통해 다른 프로세스에 FD를 넘겨보자!

Windows에서 되는지 실행 안 해봤고, 단순히 UNIX Network Programming(이하 UNP)에 나온 걸 정리해보겠다. MSDN에는 WSASendMsg 라는 녀석을 준비하였는데 대충 비슷하게 보인다. 다만 Overlapped I/O 를 Windows용으로 써야하기때문에 API가 다른 것 같다. socket에는 sendmsg/recvmsg라는 녀석이 있다. 이 녀석 형태를 보면 아래와 같다. ssize_t sendmsg(int s, const struct msghdr *msg, int flags); ssize_t recvmsg(int s, struct msghdr *msg, int flags); send/recv와 달리 버퍼가 안 보이고, msghdr 라는 구조체를 쓰는데 - 물론 이 녀석이 버퍼겠지 - 이걸 우선 까보자. struct msghdr {     void         * msg_name;     // 접속할 주소     socklen_t    msg_namelen;    // 접속할 주소 크기     struct iovec * msg_iov;      // IO 버퍼     size_t       msg_iovlen;     // IO 버퍼 개수     void         * msg_control;  // 제어 정보 버퍼     socklen_t    msg_controlle...