1.\" $NetBSD: socketpair.2,v 1.5 1995/02/27 12:38:00 cgd Exp $ 2.\" 3.\" Copyright (c) 1983, 1991, 1993 4.\" The Regents of the University of California. All rights reserved. 5.\" 6.\" Redistribution and use in source and binary forms, with or without 7.\" modification, are permitted provided that the following conditions 8.\" are met: 9.\" 1. Redistributions of source code must retain the above copyright 10.\" notice, this list of conditions and the following disclaimer. 11.\" 2. Redistributions in binary form must reproduce the above copyright 12.\" notice, this list of conditions and the following disclaimer in the 13.\" documentation and/or other materials provided with the distribution. 14.\" 3. All advertising materials mentioning features or use of this software 15.\" must display the following acknowledgement: 16.\" This product includes software developed by the University of 17.\" California, Berkeley and its contributors. 18.\" 4. Neither the name of the University nor the names of its contributors 19.\" may be used to endorse or promote products derived from this software 20.\" without specific prior written permission. 21.\" 22.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 23.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 26.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32.\" SUCH DAMAGE. 33.\" 34.\" @(#)socketpair.2 8.1 (Berkeley) 6/4/93 35.\" 36.Dd June 4, 1993 37.Dt SOCKETPAIR 2 38.Os BSD 4.2 39.Sh NAME 40.Nm socketpair 41.Nd create a pair of connected sockets 42.Sh SYNOPSIS 43.Fd #include <sys/socket.h> 44.Ft int 45.Fo socketpair 46.Fa "int domain" 47.Fa "int type" 48.Fa "int protocol" 49.Fa "int socket_vector[2]" 50.Fc 51.Sh DESCRIPTION 52The 53.Fn socketpair 54call creates an unnamed pair of connected sockets in 55the specified domain 56.Fa domain , 57of the specified 58.Fa type , 59and using the optionally specified 60.Fa protocol . 61The descriptors used in referencing the new sockets 62are returned in 63.Fa socket_vector Ns [0] 64and 65.Fa socket_vector Ns [1] . 66The two sockets are indistinguishable. 67.Sh RETURN VALUES 68.Rv -std socketpair 69.Sh ERRORS 70The call succeeds unless: 71.Bl -tag -width Er 72.\" =========== 73.It Bq Er EAFNOSUPPORT 74The specified address family is not supported on this machine. 75.\" =========== 76.It Bq Er EFAULT 77The address 78.Fa socket_vector 79does not specify a valid part of the process address space. 80.\" =========== 81.It Bq Er EMFILE 82No more file descriptors are available for this process. 83.\" =========== 84.It Bq Er ENFILE 85No more file descriptors are available for the system. 86.\" =========== 87.It Bq Er ENOBUFS 88Insufficient resources were available in the system 89to perform the operation. 90.\" =========== 91.It Bq Er ENOMEM 92Insufficient memory was available to fulfill the request. 93.\" =========== 94.It Bq Er EOPNOTSUPP 95The specified protocol does not support creation of socket pairs. 96.\" =========== 97.It Bq Er EPROTONOSUPPORT 98The specified protocol is not supported on this machine. 99.\" =========== 100.It Bq Er EPROTOTYPE 101The socket type is not supported by the protocol. 102.\" =========== 103.It Bq Er EACCES 104The process does not have appropriate privileges to create a socket of the 105specified type and/or protocol. 106.El 107.Sh LEGACY SYNOPSIS 108.Fd #include <sys/types.h> 109.Fd #include <sys/socket.h> 110.Pp 111The include file 112.In sys/types.h 113is necessary. 114.Sh SEE ALSO 115.Xr socket 2 , 116.Xr read 2 , 117.Xr write 2 , 118.Xr compat 5 119.Sh BUGS 120This call is currently implemented only for the 121.Tn UNIX 122domain. 123.Sh HISTORY 124The 125.Fn socketpair 126function call appeared in 127.Bx 4.2 . 128