mirror of https://git.FreeBSD.org/doc.git
158 lines
4.6 KiB
Groff
158 lines
4.6 KiB
Groff
.\" Copyright (c) 1991, 1993
|
|
.\" The Regents of the University of California. All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\" 3. All advertising materials mentioning features or use of this software
|
|
.\" must display the following acknowledgement:
|
|
.\" This product includes software developed by the University of
|
|
.\" California, Berkeley and its contributors.
|
|
.\" 4. Neither the name of the University nor the names of its contributors
|
|
.\" may be used to endorse or promote products derived from this software
|
|
.\" without specific prior written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
.\" SUCH DAMAGE.
|
|
.\"
|
|
.\" @(#)unix.4 8.1 (Berkeley) 6/9/93
|
|
.\" $FreeBSD$
|
|
.\" %Id: unix.4,v 1.2 1997/03/07 02:49:37 jmg Exp %
|
|
.\"
|
|
.Dd June 9, 1993
|
|
.Dt UNIX 4
|
|
.Os
|
|
.Sh 名称
|
|
.Nm unix
|
|
.Nd UNIX ドメインプロトコルファミリ
|
|
.Sh 書式
|
|
.Fd #include <sys/types.h>
|
|
.Fd #include <sys/un.h>
|
|
.Sh 解説
|
|
.Tn UNIX
|
|
ドメインプロトコルファミリは、通常の
|
|
.Xr socket 2
|
|
メカニズムを用いる
|
|
ローカルな (マシン上の) プロセス間通信を提供するプロトコル群です。
|
|
.Tn UNIX
|
|
ドメインファミリは
|
|
.Dv SOCK_STREAM
|
|
および
|
|
.Dv SOCK_DGRAM
|
|
ソケットタイプをサポートし、
|
|
アドレッシングにファイルシステムのパス名を使います。
|
|
.Sh アドレッシング
|
|
.Tn UNIX
|
|
ドメインのアドレスは、
|
|
最大 104 文字の可変長のファイルシステムパス名です。
|
|
インクルードファイル
|
|
.Aq Pa sys/un.h
|
|
がこのアドレスを定義しています:
|
|
.Bd -literal -offset indent
|
|
struct sockaddr_un {
|
|
u_char sun_len;
|
|
u_char sun_family;
|
|
char sun_path[104];
|
|
};
|
|
.Ed
|
|
.Pp
|
|
.Xr bind 2
|
|
で
|
|
.Tn UNIX
|
|
ドメインソケットに名前をバインドすることにより、
|
|
ファイルシステムにソケットファイルが作成されます。
|
|
このファイルはソケットがクローズされても削除されません。削除には
|
|
.Xr unlink 2
|
|
を使わなければなりません。
|
|
.Pp
|
|
.Tn UNIX
|
|
ドメインプロトコルファミリは、ブロードキャストアドレッシングや
|
|
入力メッセージに対するどのような形態の
|
|
.Dq ワイルドカード
|
|
マッチングもサポート
|
|
しません。全てのアドレスは他の
|
|
.Tn UNIX
|
|
ドメインソケットの絶対あるいは相対パス名です。
|
|
また、パス名を参照するときには、
|
|
通常のファイルシステムのアクセスコントロールが適用されます。
|
|
例えば
|
|
.Xr connect 2
|
|
あるいは
|
|
.Xr sendto 2
|
|
の終点は書き込み可能
|
|
でなければなりません。
|
|
.Sh プロトコル
|
|
.Tn UNIX
|
|
ドメインプロトコルファミリは
|
|
.Dv SOCK_STREAM
|
|
および
|
|
.Dv SOCK_DGRAM
|
|
アブストラクション
|
|
をサポートするシンプルなトランスポートプロトコルから成ります。
|
|
また、
|
|
.Dv SOCK_STREAM
|
|
ソケットは、
|
|
.Xr sendmsg 2
|
|
および
|
|
.Xr recvmsg 2
|
|
へ与える引数の中の
|
|
.Ar msg_control
|
|
フィールドの使用を通じて
|
|
.Tn UNIX
|
|
ファイル記述子の通信をサポートします。
|
|
.Pp
|
|
任意の正当な記述子をメッセージ中に含めて送信可能です。
|
|
渡されるファイル記述子はインクルードファイル
|
|
.Aq Pa sys/socket.h
|
|
で定義される
|
|
.Ar struct cmsghdr
|
|
を用いて記述されます。そのメッセージの
|
|
タイプは
|
|
.Dv SCM_RIGHTS
|
|
であり、メッセージのデータ部は渡される
|
|
ファイル記述子を表現する整数の配列です。
|
|
渡される記述子の数はメッセージの length フィールドで定義されています。
|
|
length フィールドはヘッダのサイズと
|
|
ファイル記述子の配列のサイズの合計です。
|
|
.Pp
|
|
受信された記述子は、
|
|
.Xr dup 2
|
|
の呼び出しによって生成されたかのような、
|
|
送信者の記述子の
|
|
.Em 複製
|
|
です。
|
|
.Xr fcntl 2
|
|
でセットされたプロセス毎の記述子フラグは、
|
|
受信者には
|
|
.Em 渡されません。
|
|
配送を待っている、あるいは意図的に受け取られない
|
|
記述子は、終点ソケットがクローズされたときに
|
|
システムによって自動的にクローズされます。
|
|
.Sh 関連項目
|
|
.Xr socket 2 ,
|
|
.Xr intro 4
|
|
.Rs
|
|
.%T "An Introductory 4.3 BSD Interprocess Communication Tutorial"
|
|
.%B PS1
|
|
.%N 7
|
|
.Re
|
|
.Rs
|
|
.%T "An Advanced 4.3 BSD Interprocess Communication Tutorial"
|
|
.%B PS1
|
|
.%N 8
|
|
.Re
|