Sun Solaris에서 RHEL로 마이그레이션합니다. 그런데 C 프로그램을 컴파일하면 아래와 같은 에러가 나옵니다.
struct msghdr msg;
msg.msg_accrights = (caddr_t)&fd_to_send;
msg.msg_accrightslen = sizeof(int);
error: 'struct msghdr' has no member named 'msg_accrights'
error: 'struct msghdr' has no member named 'msg_accrightslen'
Linux 설정은 커널 2.6.18-419.el5를 실행합니다.
답변1
귀하의 Solaris 코드는 4.3BSD 스타일 메시지를 사용합니다.4.4BSD 스타일 메시지, 그리고 msg_control
그리고 msg_controllen
그리고struct cmsg
바꾸다 msg_accrights
.
다음에 설명된 방법을 사용하여 파일 설명자를 전달하려면 코드를 수정해야 합니다.sendmsg()를 사용하여 소켓을 통해 두 프로세스 간에 파일 설명자를 보내는 방법은 무엇입니까?