#include <sys/types.h> #include <sys/socket.h> int socketpair(int d, int type, int protocol, int sv[2]);Pierwsze trzy argumenty mają znaczenie znalogiczne, jak w wywołaniu socket(). Ostatni argument to dwie zmienne typu int, którym zostaną przypisane nowoutworzone deskryptory. Funkcja zwraca 0 albo -1 (błąd).
Funkcje socketpair() można wykorzystać na przykład w taki sposób:
int sd[2];
socketpair (PF_UNIX, SOCK_STREAM, 0, sd);
if (fork)
{
close (sd[0]); /* potomek zamyka jedno z gniazd ... */
...
}
close (sd[1]); /* a rodzic zamyka drugie gniazdo */
...
Po takich operacjach proces macierzysty i potomek będą mogły komunikować się
ze sobą za pośrednictwem połączonych gniazd. Warto przy okazji dodać, że
gniazda SOCK_DGRAM w domenie PF_UNIX mają niewiele wspólnego z analogicznymi
gniazdami w domenie PF_INET, a to oznacza, że są równie niezawodne jak gniazda
SOCK_STREAM ...