1 .\" 本man页版权所有(C) 1999 Andi Kleen <ak@muc.de>.
2 .TH UNIX 7 "1999年5月7日" "Linux 手册页" "Linux程序员手册"
5 unix, PF_UNIX, AF_UNIX, PF_LOCAL, AF_LOCAL \- 用于本地内部进程通讯的套接字。
7 .B #include <sys/socket.h>
11 .IB unix_socket " = socket(PF_UNIX, type, 0);"
13 .IB error " = socketpair(PF_UNIX, type, 0, int *" sv ");"
19 套接字族用来在同一机器上的提供有效的进程间通讯.Unix 套接字可以是匿名的(由
22 Linux 还支持一种抽象名字空间, 它是独立于文件系统的.
28 用于面向数据报的套接字,其可以保存消息界限.
29 Unix 套接字总是可靠的,而且不会重组数据报.
31 Unix 套接字支持把文件描述符或者进程的信用证明作为数据报的辅助数据
34 .SH ADDRESS FORMAT(地址格式)
39 创建的套接字是匿名的.对于非匿名的套接字,目标地址可使用
50 #define UNIX_PATH_MAX 108
54 sa_family_t sun_family; /* AF_UNIX */
55 char sun_path[UNIX_PATH_MAX]; /* 路径名 */
67 以空零字节开头,它指向由 Unix 协议模块维护的抽象名字空间.
73 .SH SOCKET OPTIONS(套接字选项)
74 由于历史原因, 这些套接字选项通过 SOL_SOCKET 类型确定,
79 通过指定 SOL_SOCKET 作为套接字族
90 .SH ANCILLARY MESSAGES(辅助信息)
91 由于历史原因,这些辅助信息类型通过 SOL_SOCKET 类型确定,
121 pid_t pid; /* 发送进程的进程标识 */
122 uid_t uid; /* 发送进程的用户标识 */
123 gid_t gid; /* 发送进程的组标识 */
129 一个带有有效用户标识 0 的进程允许指定不与其自身值相
130 匹配的值.发送者必须确定其自身的进程标识(除非它带有
132 其用户标识,有效用户标识或者设置用户标识(除非它带有
134 以及其组标识,有效组标识或者设置组标识(除非它带有
144 和抽象名字空间是在 Linux 2.2 中引入的,不应该在要求可移植的程序中使用.
148 在文件系统中可见的套接字拥有它们所在目录的权限许可.
150 如果进程不拥有对创建的套接字所在目录的写和搜索(执行)权限,
152 这种执行方式与许多由 BSD 发展而来的系统不同,
153 那些系统会忽略 Unix 套接字所需的权限.
156 绑定文件名到套接字会在文件系统中创建一个套接字,
161 套接字可在任何时候删除, 而且当最后一个引用关闭时,
164 要传递文件描述符或者信用证明, 你需要发送/读取至少一个字节.
175 这可能发生在远程套接字不存在或者文件名不是套接字的时候.
180 通常的产生原因是已传地址的 sun_type 字段的 AF_UNIX 设置丢失,
185 在非面向流的套接字上调用了流操作,或者试图使用出界的数据选项.
197 远程套接字与本地套接字类型不匹配 (SOCK_DGRAM 对 SOCK_STREAM).
201 选择的本地地址已经占用,或者文件系统套接字对象已经存在.
207 或者指定的目标地址在一个已连接的套接字上.
211 套接字操作需要一个目的地址,但是套接字尚未连接.
218 远程套接字在一个流套接字上关闭了.如果激活,会同时发送一个
237 可能会由通用套接层或者文件系统产生其它错误.
251 .B riser <boomer@ccidnet.com>
254 .SH "《中国linux论坛man手册页翻译计划》:"
255 .BI http://cmpp.linuxforum.net