UNIX 7

中文man手册

目录

UNIX

NAME(åç§°ï¼
SYNOPSIS(æ»è§)
DESCRIPTION(æè¿°)
ADDRESS FORMAT(å°åæ ¼å¼)
SOCKET OPTIONS(奿¥åé项)
ANCILLARY MESSAGES(è¾å©ä¿¡æ¯)
VERSIONS(çæ¬)
NOTES(注æ)
ERRORS(é误)
SEE ALSO(å¦è§)
CREDITS(尾注)
[䏿çç»´æ¤äºº]
[ä¸æçææ°æ´æ°]
ãä¸å½linux论åmanæå页翻è¯è®¡åã:
è·

NAME(åç§°ï¼

unix, PF_UNIX, AF_UNIX, PF_LOCAL, AF_LOCAL - ç¨äºæ¬å°åé¨è¿ç¨é讯ç奿¥åã

SYNOPSIS(æ»è§)

#include <sys/socket.h>
#include <sys/un.h>

unix_socket = socket(PF_UNIX, type, 0);
error
= socketpair(PF_UNIX, type, 0, int *sv);

DESCRIPTION(æè¿°)

PF_UNIX (ä¹ç§°ä½ PF_LOCAL ) 奿¥åæç¨æ¥å¨å䏿ºå¨ä¸çæä¾ææçè¿ç¨é´é讯.Unix 奿¥åå¯ä»¥æ¯å¿åç(ç± socketpair(2) å建), ä¹å¯ä»¥ä¸å¥æ¥åç±»åæä»¶ç¸å³è. Linux è¿æ¯æä¸ç§æ½è±¡åå空é´, 宿¯ç¬ç«äºæä»¶ç³»ç»ç.

ææçç±»åæ: SOCK_STREAM ç¨äºé¢åæµç奿¥å, SOCK_DGRAM ç¨äºé¢åæ°æ®æ¥ç奿¥å- ,å¶å¯ä»¥ä¿åæ¶æ¯çé. Unix 奿¥åæ»æ¯å¯é ç,èä¸ä¸ä¼éç»æ°æ®æ¥.

Unix 奿¥åæ¯æææä»¶æè¿°ç¬¦æèè¿ç¨çä¿¡ç¨è¯æä½ä¸ºæ°æ®æ¥çè¾å©æ°æ® ä¼ éç»å¶å®è¿ç¨ï¼

ADDRESS FORMAT(å°åæ ¼å¼)

unix å°åå®ä¹ä¸ºæä»¶ç³»ç»ä¸çä¸ä¸ªæä»¶å æèæ½è±¡åå空é´ä¸çä¸ä¸ªåç¬çå- 符串. ç± socketpair(2) å建ç奿¥åæ¯å¿åç.对äºéå¿åç奿¥å- ,ç®æ å°åå¯ä½¿ç¨ connect(2) 设置. æ¬å°å°åå¯ä½¿ç¨ bind(2) 设置. å½å¥æ¥åè¿æ¥ä¸èä¸å®æ²¡æä¸ä¸ªæ¬å°å°åæ¶, ä¼èªå¨å¨æ½è±¡åå空é´ä¸- çæä¸ä¸ªå¯ä¸çå°å.

#define UNIX_PATH_MAX 108

struct sockaddr_un {
sa_family_t sun_family; /* AF_UNIX */
char sun_path[UNIX_PATH_MAX]; /* è·¯å¾å */
};

sun_family æ»æ¯åå« AF_UNIX. sun_path åå«ç©ºé¶ç»å°¾ç奿¥åå¨æä»¶ç³»ç»ä¸- çè·¯å¾å. 妿 sun_path 以空é¶åèå¼å¤´,宿åç± Unix å议模åç»´æ¤çæ½è±¡åå空é´. è¯¥å¥æ¥å卿¤åå空é´ä¸çå°åç± sun_path ä¸- çå©ä½åèç»å®. æ³¨ææ½è±¡åå空é´çååé½ä¸æ¯ç©ºé¶ç»æ¢ç.

SOCKET OPTIONS(奿¥åé项)

ç±äºåå²åå , è¿äºå¥æ¥åé项éè¿ SOL_SOCKET ç±»åç¡®å®, å³ä½¿å®ä»¬æ¯ PF_UNIX æå®ç. å®ä»¬å¯ä»¥ç± setsockopt(2) 设置. éè¿æå® SOL_SOCKET ä½ä¸ºå¥æ¥åæ ç¨ getsockopt(2) æ¥è¯»å.

SO_PASSCRED åè®¸æ¥æ¶è¿ç¨è¾å©ä¿¡æ¯åéçä¿¡ç¨è¯æ. å½è®¾ç½®äºè¯¥é项ä¸å¥æ¥åå°æªè¿æ¥æ¶, åä¼èªå¨çæä¸ä¸ªæ½è±¡åå空é´çå¯ä¸åå. å¼ä¸ºä¸ä¸ªæ´æ°å¸å°æ è¯.

ANCILLARY MESSAGES(è¾å©ä¿¡æ¯)

ç±äºåå²åå ,è¿äºè¾å©ä¿¡æ¯ç±»åéè¿ SOL_SOCKET ç±»åç¡®å®, å³ä½¿å®ä»¬æ¯ PF_UNIX æå®ç. è¦åéå®ä»¬, å¯è®¾ç½®ç»æ cmsghdr ç cmsg_level åæ®µä¸º SOL_SOCKET, 并设置 cmsg_type åæ®µä¸ºå¶ç±»å. è¦è·å¾æ´å¤ä¿¡æ¯, 请åç cmsg(3).
SCM_RIGHTS

为å¶ä»è¿ç¨åéææ¥æ¶ä¸å¥æå¼æä»¶æè¿°ç¬¦. å¶æ°æ®é¨ååå«ä¸ä¸ªæä»¶æè¿°ç¬¦çæ´åæ°ç». 已传æä»¶æè¿°ç¬¦çææå°±å¦å®ä»¬å·²ç± dup(2) å建è¿ä¸æ ·.

SCM_CREDENTIALS

åéæèæ¥æ¶ unix ä¿¡ç¨è¯æ. å¯ç¨ä½è®¤è¯.ä¿¡ç¨è¯æä¼ é以 struct ucred è¾å©ä¿¡æ¯çå½¢å¼ä¼ éï¼

struct ucred {
pid_t pid; /* åéè¿ç¨çè¿ç¨æ è¯ */
uid_t uid; /* åéè¿ç¨çç¨æ·æ è¯ */
gid_t gid; /* åéè¿ç¨çç»æ è¯ */
};

åéèç¡®å®çä¿¡ç¨è¯æç±åæ ¸æ£æ¥. ä¸ä¸ªå¸¦æææç¨æ·æ è¯ 0 çè¿ç¨å许æå®ä¸ä¸å¶èªèº«å¼ç¸ å¹éçå¼.åéèå¿é¡»ç¡®å®å¶èªèº«çè¿ç¨æ è¯(é¤éå®å¸¦æ CAP_SYS_ADMIN), å¶ç¨æ·æ è¯,ææç¨æ·æ è¯æèè®¾ç½®ç¨æ·æ è¯(é¤éå®å¸¦æ CAP_SETUID), 以åå¶ç»æ è¯,ææç»æ è¯æèè®¾ç½®ç»æ è¯(é¤éå®å¸¦æ CAP_SETGID). ä¸ºäºæ¥æ¶ä¸æ¡ struct ucred æ¶æ¯,å¿é¡»å¨å¥æ¥å䏿¿æ´» SO_PASSCRED é项.

VERSIONS(çæ¬)

SCM_CREDENTIALS åæ½è±¡ååç©ºé´æ¯å¨ Linux 2.2 ä¸- å¼å¥ç,ä¸åºè¯¥å¨è¦æ±å¯ç§»æ¤çç¨åºä¸ä½¿ç¨.

NOTES(注æ)

å¨ Linux å®ç°ä¸, å¨æä»¶ç³»ç»ä¸å¯è§ç奿¥åæ¥æå®ä»¬æå¨ç®å½çæé许å¯. å®ä»¬çææè,ç»åæéå¯ä»¥ä½ä¿®æ¹. 妿è¿ç¨ä¸æ¥æå¯¹å建ç奿¥å- æå¨ç®å½çååæç´¢(æ§è¡)æé, åå建ä¸ä¸ªæ°ç奿¥åä¼å¤±è´¥. è¿ç§æ§è¡æ¹å¼ä¸è®¸å¤ç± BSD åå±èæ¥çç³»ç»ä¸å, é£äºç³»ç»ä¼å¿½ç¥ Unix 奿¥å- æéçæé. å¯ç§»æ¤çç¨åºä¸åºæè¿é¡¹åè½ç¨äºå®å¨æ¹é¢ï¼

ç»å®æä»¶åå°å¥æ¥åä¼å¨æä»¶ç³»ç»ä¸å建ä¸ä¸ªå¥æ¥å, è¿ä¸ªå¥æ¥å- å¨å®ä¸åéè¦æ¶å¿é¡»ç±è°ç¨è å é¤(ä½¿ç¨ unlink(2)). éç¨ç Unix ç¸å³è¯- ä¹å¯éç¨; 奿¥åå¯å¨ä»»ä½æ¶åå é¤, èä¸å½æåä¸ä¸ªå¼ç¨å³éæ¶, æç»ä¼ä»æä»¶ç³»ç»ä¸å é¤.

è¦ä¼ éæä»¶æè¿°ç¬¦æèä¿¡ç¨è¯æ, ä½ éè¦åé/读åè³å°ä¸ä¸ªåè.

ERRORS(é误)

ENOMEM

ååæº¢åº.

ECONNREFUSED

connect(2) è°ç¨äºä¸ä¸ªæªå¨çå¬ç奿¥å对象. è¿å¯è½åçå¨è¿ç¨å¥æ¥å- ä¸å卿èæä»¶å䏿¯å¥æ¥åçæ¶å.

EINVAL

ä¼ éäºæ æåæ°. é常ç产çåå æ¯å·²ä¼ å°åç sun_type åæ®µç AF_UNIX 设置丢失, æè奿¥å对åºç¨çæä½å¤äºæ æç¶æ.

EOPNOTSUPP

å¨éé¢åæµç奿¥åä¸è°ç¨äºæµæä½,æèè¯å¾ä½¿ç¨åºççæ°æ®é项.

EPROTONOSUPPORT

ä¼ éçåè®®æ¯é PF_UNIX ç.

ESOCKTNOSUPPORT

æªç¥ç奿¥åç±»å.

EPROTOTYPE

è¿ç¨å¥æ¥å䏿¬å°å¥æ¥åç±»åä¸å¹é (SOCK_DGRAM 对 SOCK_STREAM).

EADDRINUSE

éæ©çæ¬å°å°åå·²ç»å ç¨,æèæä»¶ç³»ç»å¥æ¥å对象已ç»åå¨.

EISCONN

å¨ä¸ä¸ªå·²ç»è¿æ¥ç奿¥åä¸è°ç¨ connect(2) æèæå®çç®æ å°åå¨ä¸ä¸ªå·²è¿æ¥ç奿¥åä¸.

ENOTCONN

奿¥åæä½éè¦ä¸ä¸ªç®çå°å,使¯å¥æ¥åå°æªè¿æ¥.

ECONNRESET

è¿ç¨å¥æ¥åæå¤å³é.

EPIPE

è¿ç¨å¥æ¥åå¨ä¸ä¸ªæµå¥æ¥åä¸å³éäº.å¦ææ¿æ´»,ä¼åæ¶åéä¸ä¸ª SIGPIPE æ è¯.è¿å¯ä»¥éè¿ä¼ é MSG_NOSIGNAL æ è¯ç» sendmsg(2) æè recvmsg(2) æ¥é¿å.

EFAULT

ç¨æ·ååå°åæ æ.

EPERM

åéèå¨ struct ucred ä¸ä¼ éæ æçä¿¡ç¨è¯æ.

å½çæä¸ä¸ªæä»¶ç³»ç»å¥æ¥å对象æ¶, å¯è½ä¼ç±éç¨å¥æ¥å±æèæä»¶ç³»ç»äº§çå¶å®é误. è¦è·å¾æ´å¤ä¿¡æ¯,å¯åè§åéçæå页.

SEE ALSO(å¦è§)

recvmsg(2), sendmsg(2), socket(2), socket(2), socketpair(2), cmsg(3), socket(7)

CREDITS(尾注)

æ¬man页ä½èAndi Kleen.

[䏿çç»´æ¤äºº]

riser <boomer@ccidnet.com>

[ä¸æçææ°æ´æ°]

2001/07/19

ãä¸å½linux论åmanæå页翻è¯è®¡åã:

http://cmpp.linuxforum.net

è·

æ¬é¡µé¢ä¸æçç±ä¸æ man æå页计åæä¾ã
䏿 man æå页计åï¼https://github.com/man-pages-zh/manpages-zh