Skip to content
Syscall BSD#135

svc · unix #135

socketpair

Crée une paire de sockets connectées et anonymes dans le domaine AF_UNIX pour de l'IPC intra-processus.

Prototype

int socketpair(int domain, int type, int protocol, int *rsv);

Retour: int

Arguments

NameTypeDirDescription
domainint-
typeint-
protocolint-
rsvint-

Historique des versions

XNU tagmacOS#
xnu-1456.1.26macOS 10.6 Snow Leopard135
xnu-1486.2.11135
xnu-1504.15.3135
xnu-1504.3.12135
xnu-1504.7.4135
xnu-1504.9.17135
xnu-1504.9.26135
xnu-1504.9.37135

Notes

Seul AF_UNIX est accepté sur macOS ; le noyau renvoie EOPNOTSUPP pour AF_INET. Les deux descripteurs partagent un tampon dans unp_pcb d'xnu et se comportent comme un tube bidirectionnel avec passage optionnel de descripteurs via SCM_RIGHTS. XPC, launchd et de nombreux frameworks Apple utilisent socketpair sous le capot pour transmettre à un processus enfant un canal de contrôle pré-connecté, souvent hérité au travers de posix_spawn.

Détection

Aucun événement Endpoint Security ne couvre socketpair. Détectez indirectement en énumérant les paires Unix via proc_pidinfo + PROC_PIDFDSOCKETINFO et en corrélant les adresses des pairs avec sysctl net.local.stream.pcblist.

API associées

socketpipesendmsgrecvmsgfileport_makeport