소켓 sendmsg
의 시스템 호출 코드를 검사하던 중 AF_UNIX
다음과 같은 기능을 발견했습니다( wait_for_unix_gc
플라잉 소켓용 가비지 컬렉터). 기내 소켓이 무엇인지 간단히 말해 줄 수 있는 사람이 있나요?
커널 파일:linux/net/unix/garbage.c
답변1
Unix 네트워크 프로그래밍 V1: 15.7장에서 직접 복사했습니다.
전송 프로세스는 전달될 설명자를 포함하는 msghdr 구조(섹션 14.5)를 구축합니다. POSIX에서는 설명자가 보조 데이터(msghdr 구조의 msg_control 멤버, 섹션 14.6)로 전송되도록 지정하지만 이전 구현에서는 msg_accrights 멤버를 사용합니다. 전송 프로세스는 sendmsg를 호출하여 Unix 도메인 소켓을 통해 1단계의 설명자를 보냅니다. 이 시점에서 우리는 설명자가 "비행 중"보내는 과정이 있어도 설명자 닫기sendmsg를 호출한 후,하지만 받기 전에 프로세스 호출 recvmsg(next), 설명자열려있어 수신 과정에서 사용됩니다. 설명자를 보내면 설명자의 참조 횟수가 1씩 증가합니다.