]> git.ipfire.org Git - thirdparty/man-pages.git/blobdiff - man2/connect.2
intro.1, _exit.2, access.2, alarm.2, alloc_hugepages.2, arch_prctl.2, bind.2, chdir...
[thirdparty/man-pages.git] / man2 / connect.2
index 6d08f8d31e307e19da4e348574f2ba8ec91c1f32..f70fda8b8b4bda7e5b8cec82ac767dd90ee42b0d 100644 (file)
@@ -1,9 +1,8 @@
-.\" Hey Emacs! This file is -*- nroff -*- source.
-.\"
 .\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu)
 .\" Portions extracted from /usr/include/sys/socket.h, which does not have
 .\" any authorship information in it.  It is probably available under the GPL.
 .\"
+.\" %%%LICENSE_START(VERBATIM)
 .\" Permission is granted to make and distribute verbatim copies of this
 .\" manual provided the copyright notice and this permission notice are
 .\" preserved on all copies.
@@ -23,6 +22,7 @@
 .\"
 .\" Formatted or processed versions of this manual, if unaccompanied by
 .\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
 .\"
 .\"
 .\" Other portions are from the 6.9 (Berkeley) 3/10/91 man page:
@@ -30,6 +30,7 @@
 .\" Copyright (c) 1983 The Regents of the University of California.
 .\" All rights reserved.
 .\"
+.\" %%%LICENSE_START(BSD_4_CLAUSE_FULL)
 .\" Redistribution and use in source and binary forms, with or without
 .\" modification, are permitted provided that the following conditions
 .\" are met:
 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
+.\" %%%LICENSE_END
 .\"
 .\" Modified 1997-01-31 by Eric S. Raymond <esr@thyrsus.com>
 .\" Modified 1998, 1999 by Andi Kleen
-.\" Modified 2004-06-23 by Michael Kerrisk <mtk-manpages@gmx.net>
+.\" Modified 2004-06-23 by Michael Kerrisk <mtk.manpages@gmail.com>
 .\"
-.TH CONNECT 2 2004-06-23 "Linux 2.6.7" "Linux Programmer's Manual"
+.TH CONNECT 2 2008-12-03 "Linux" "Linux Programmer's Manual"
 .SH NAME
 connect \- initiate a connection on a socket
 .SH SYNOPSIS
 .nf
-.B #include <sys/types.h>
+.BR "#include <sys/types.h>" "          /* See NOTES */"
 .br
 .B #include <sys/socket.h>
 .sp
-.BI "int connect(int " sockfd ", const struct sockaddr *" serv_addr ,
+.BI "int connect(int " sockfd ", const struct sockaddr *" addr ,
 .BI "            socklen_t " addrlen );
 .fi
 .SH DESCRIPTION
@@ -80,13 +82,13 @@ The
 system call connects the socket referred to by the file descriptor
 .I sockfd
 to the address specified by
-.IR serv_addr .
+.IR addr .
 The
-.IR addrlen
+.I addrlen
 argument specifies the size of
-.IR serv_addr .
+.IR addr .
 The format of the address in
-.I serv_addr
+.I addr
 is determined by the address space of the socket
 .IR sockfd ;
 see
@@ -98,7 +100,7 @@ If the socket
 is of type
 .B SOCK_DGRAM
 then
-.I serv_addr
+.I addr
 is the address to which datagrams are sent by default, and the only
 address from which datagrams are received.
 If the socket is of type
@@ -107,7 +109,7 @@ or
 .BR SOCK_SEQPACKET ,
 this call attempts to make a connection to the socket that is bound
 to the address specified by
-.IR serv_addr .
+.IR addr .
 .PP
 Generally, connection-based protocol sockets may successfully
 .BR connect ()
@@ -118,10 +120,11 @@ Connectionless sockets may
 dissolve the association by connecting to an address with the
 .I sa_family
 member of
-.B sockaddr
+.I sockaddr
 set to
-.BR AF_UNSPEC .
-.SH "RETURN VALUE"
+.BR AF_UNSPEC
+(supported on Linux since kernel 2.2).
+.SH RETURN VALUE
 If the connection or binding succeeds, zero is returned.
 On error, \-1 is returned, and
 .I errno
@@ -131,14 +134,14 @@ The following are general socket errors only.
 There may be other domain-specific error codes.
 .TP
 .B EACCES
-For Unix domain sockets, which are identified by pathname:
+For UNIX domain sockets, which are identified by pathname:
 Write permission is denied on the socket file,
 or search permission is denied for one of the directories
 in the path prefix.
 (See also
 .BR path_resolution (7).)
 .TP
-.B EACCES, EPERM
+.BR EACCES ", " EPERM
 The user tried to connect to a broadcast address without having the socket
 broadcast flag enabled or the connection request failed because of a local
 firewall rule.
@@ -154,28 +157,27 @@ field.
 .B EAGAIN
 No more free local ports or insufficient entries in the routing cache.
 For
-.B PF_INET
-see the
-.B net.ipv4.ip_local_port_range
-sysctl in
+.B AF_INET
+see the description of
+.I /proc/sys/net/ipv4/ip_local_port_range
 .BR ip (7)
-on how to increase the number of local ports.
+for information on how to increase the number of local ports.
 .TP
 .B EALREADY
-The socket is non-blocking and a previous connection attempt has not yet
+The socket is nonblocking and a previous connection attempt has not yet
 been completed.
 .TP
 .B EBADF
 The file descriptor is not a valid index in the descriptor table.
 .TP
 .B ECONNREFUSED
-No one listening on the remote address.
+No-one listening on the remote address.
 .TP
 .B EFAULT
 The socket structure address is outside the user's address space.
 .TP
 .B EINPROGRESS
-The socket is non-blocking and the connection cannot be completed
+The socket is nonblocking and the connection cannot be completed
 immediately.
 It is possible to
 .BR select (2)
@@ -200,7 +202,8 @@ is one of the usual error codes listed here,
 explaining the reason for the failure).
 .TP
 .B EINTR
-The system call was interrupted by a signal that was caught.
+The system call was interrupted by a signal that was caught; see
+.BR signal (7).
 .\" For TCP, the connection will complete asynchronously.
 .\" See http://lkml.org/lkml/2005/7/12/254
 .TP
@@ -219,7 +222,7 @@ The server may be too
 busy to accept new connections.
 Note that for IP sockets the timeout may
 be very long when syncookies are enabled on the server.
-.SH "CONFORMING TO"
+.SH CONFORMING TO
 SVr4, 4.4BSD, (the
 .BR connect ()
 function first appeared in 4.2BSD), POSIX.1-2001.
@@ -236,6 +239,12 @@ function first appeared in 4.2BSD), POSIX.1-2001.
 .\" It also
 .\" documents many additional error conditions not described here.
 .SH NOTES
+POSIX.1-2001 does not require the inclusion of
+.IR <sys/types.h> ,
+and this header file is not required on Linux.
+However, some historical (BSD) implementations required this header
+file, and portable applications are probably wise to include it.
+
 The third argument of
 .BR connect ()
 is in reality an
@@ -246,13 +255,12 @@ Some POSIX confusion resulted in the present
 also used by glibc.
 See also
 .BR accept (2).
-.SH BUGS
-Unconnecting a socket by calling
+.SH EXAMPLE
+An example of the use of
 .BR connect ()
-with a
-.B AF_UNSPEC
-address is not yet implemented.
-.SH "SEE ALSO"
+is shown in
+.BR getaddrinfo (3).
+.SH SEE ALSO
 .BR accept (2),
 .BR bind (2),
 .BR getsockname (2),