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) の終点は書き込み可能 でなければなりません。
任意の正当な記述子をメッセージ中に含めて送信可能です。 渡されるファイル記述子はインクルードファイル Aq Pa sys/socket.h で定義される struct cmsghdr を用いて記述されます。そのメッセージの タイプは SCM_RIGHTS であり、メッセージのデータ部は渡される ファイル記述子を表現する整数の配列です。 渡される記述子の数はメッセージの length フィールドで定義されています。 length フィールドはヘッダのサイズと ファイル記述子の配列のサイズの合計です。
受信された記述子は、 dup(2) の呼び出しによって生成されたかのような、 送信者の記述子の 複製 です。 fcntl(2) でセットされたプロセス毎の記述子フラグは、 受信者には 渡されません。 配送を待っている、あるいは意図的に受け取られない 記述子は、終点ソケットがクローズされたときに システムによって自動的にクローズされます。