UNIX(4)

명칭
unix - UNIX 도메인 프로토콜 패밀리

서식
#include <sys/types.h> #include <sys/un.h>

해설
UNIX 도메인 프로토콜 패밀리는, 통상의 socket(2) 메카니즘을 이용한다 로컬인 (머신상의) 프로세스간 통신을 제공하는 프로토콜군입니다. UNIX 도메인 패밀리는 SOCK_STREAM 및 SOCK_DGRAM 소켓 타입을 서포트해, 애드레싱에 파일 시스템의 패스명을 사용합니다.

애드레싱
UNIX 도메인의 주소는, 최대 104 캐릭터의 가변장의 파일 시스템 패스명입니다. 인클루드 파일 <sys/un.h> 하지만 이 주소를 정의하고 있습니다:

    struct sockaddr_un {
    u_char	sun_len;
    u_char	sun_family;
    char	sun_path[104];
    };

bind(2) 그리고 UNIX 도메인 소켓에 이름을 바인드 하는 것으로써, 파일 시스템에 소켓 파일이 작성됩니다. 이 파일은 소켓이 클로우즈 되어도 삭제되지 않습니다. 삭제에는 unlink(2) (을)를 사용하지 않으면 안됩니다.

UNIX 도메인 프로토콜 패밀리는, 브로드캐스트 애드레싱이나 입력 메세지에 대한 어떠한 형태의 “와일드 카드” 매칭도 서포트 하지 않습니다. 모든 주소는 다른 UNIX 도메인 소켓의 절대 혹은 상대 패스명입니다. 또, 패스명을 참조할 경우에는, 통상의 파일 시스템의 액세스 컨트롤이 적용됩니다. 예를 들면 connect(2) 혹은 sendto(2) 의 종점은 기입해 가능 (이)가 아니면 안됩니다.

프로토콜
UNIX 도메인 프로토콜 패밀리는 SOCK_STREAM 및 SOCK_DGRAM 아브스트라크션 (을)를 서포트하는 심플한 트랜스폴트 프로토콜로부터 완성됩니다. 또, SOCK_STREAM 소켓은, sendmsg(2) 및 recvmsg(2) 에 주는 인수안의 msg_control 필드의 사용을 통해서 UNIX 파일 기술자의 통신을 서포트합니다.

임의의 정당한 기술자를 메세지중에 포함해 송신 가능합니다. 건네받는 파일 기술자는 인클루드 파일 <sys/socket.h> 그리고 정의된다 struct cmsghdr (을)를 이용해 기술됩니다. 그 메세지의 타입은 SCM_RIGHTS (이어)여, 메세지의 데이터부는 건네받는다 파일 기술자를 표현하는 정수의 배열입니다. 건네받는 기술자의 수는 메세지의 length 필드에서 정의되고 있습니다. length 필드는 헤더의 사이즈와 파일 기술자의 배열의 사이즈의 합계입니다.

수신된 기술자는, dup(2) 의 호출에 의해 생성된 것 같은, 송신자의 기술자의 복제 입니다. fcntl(2) 그리고 세트 된 프로세스 마다의 기술자 플래그는, 수신자에게는 건네받지 않습니다. 배송을 기다리고 있다, 혹은 의도적으로 받아들일 수 없다 기술자는, 종점 소켓이 클로우즈 되었을 때에 시스템에 의해 자동적으로 클로우즈 됩니다.

관련 항목
socket(2), intro(4) An Introductory 4.3 BSD Interprocess Communication Tutorial, PS1, 7. An Advanced 4.3 BSD Interprocess Communication Tutorial, PS1, 8.