]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - doc/html/ref/net-common-tcpip-manpages-getsockname.html
Initial revision
[karo-tx-redboot.git] / doc / html / ref / net-common-tcpip-manpages-getsockname.html
1 <!-- Copyright (C) 2003 Red Hat, Inc.                                -->
2 <!-- This material may be distributed only subject to the terms      -->
3 <!-- and conditions set forth in the Open Publication License, v1.0  -->
4 <!-- or later (the latest version is presently available at          -->
5 <!-- http://www.opencontent.org/openpub/).                           -->
6 <!-- Distribution of the work or derivative of the work in any       -->
7 <!-- standard (paper) book form is prohibited unless prior           -->
8 <!-- permission is obtained from the copyright holder.               -->
9 <HTML
10 ><HEAD
11 ><TITLE
12 >getsockname</TITLE
13 ><meta name="MSSmartTagsPreventParsing" content="TRUE">
14 <META
15 NAME="GENERATOR"
16 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
17 "><LINK
18 REL="HOME"
19 TITLE="eCos Reference Manual"
20 HREF="ecos-ref.html"><LINK
21 REL="UP"
22 TITLE="TCP/IP Library Reference"
23 HREF="tcpip-library-reference.html"><LINK
24 REL="PREVIOUS"
25 TITLE="getpeername"
26 HREF="net-common-tcpip-manpages-getpeername.html"><LINK
27 REL="NEXT"
28 TITLE="getsockopt"
29 HREF="net-common-tcpip-manpages-getsockopt.html"></HEAD
30 ><BODY
31 CLASS="SECT1"
32 BGCOLOR="#FFFFFF"
33 TEXT="#000000"
34 LINK="#0000FF"
35 VLINK="#840084"
36 ALINK="#0000FF"
37 ><DIV
38 CLASS="NAVHEADER"
39 ><TABLE
40 SUMMARY="Header navigation table"
41 WIDTH="100%"
42 BORDER="0"
43 CELLPADDING="0"
44 CELLSPACING="0"
45 ><TR
46 ><TH
47 COLSPAN="3"
48 ALIGN="center"
49 >eCos Reference Manual</TH
50 ></TR
51 ><TR
52 ><TD
53 WIDTH="10%"
54 ALIGN="left"
55 VALIGN="bottom"
56 ><A
57 HREF="net-common-tcpip-manpages-getpeername.html"
58 ACCESSKEY="P"
59 >Prev</A
60 ></TD
61 ><TD
62 WIDTH="80%"
63 ALIGN="center"
64 VALIGN="bottom"
65 >Chapter 38. TCP/IP Library Reference</TD
66 ><TD
67 WIDTH="10%"
68 ALIGN="right"
69 VALIGN="bottom"
70 ><A
71 HREF="net-common-tcpip-manpages-getsockopt.html"
72 ACCESSKEY="N"
73 >Next</A
74 ></TD
75 ></TR
76 ></TABLE
77 ><HR
78 ALIGN="LEFT"
79 WIDTH="100%"></DIV
80 ><DIV
81 CLASS="SECT1"
82 ><H1
83 CLASS="SECT1"
84 ><A
85 NAME="NET-COMMON-TCPIP-MANPAGES-GETSOCKNAME">getsockname</H1
86 ><TABLE
87 BORDER="5"
88 BGCOLOR="#E0E0F0"
89 WIDTH="70%"
90 ><TR
91 ><TD
92 ><PRE
93 CLASS="SCREEN"
94 >GETSOCKNAME(2)                System Calls Manual               GETSOCKNAME(2)
95
96 NAME
97      getsockname - get socket name
98
99 SYNOPSIS
100      #include &lt;sys/types.h&#62;
101      #include &lt;sys/socket.h&#62;
102
103      int
104      getsockname(int s, struct sockaddr *name, socklen_t *namelen);
105
106 DESCRIPTION
107      getsockname() returns the locally bound address information for a speci-
108      fied socket.
109
110      Common uses of this function are as follows:
111
112      o   When bind(2) is called with a port number of 0 (indicating the kernel
113          should pick an ephemeral port) getsockname() is used to retrieve the
114          kernel-assigned port number.
115
116      o   When a process calls bind(2) on a wildcard IP address, getsockname()
117          is used to retrieve the local IP address for the connection.
118
119      o   When a function wishes to know the address family of a socket,
120          getsockname() can be used.
121
122      getsockname() takes three parameters:
123
124      s, Contains the file desriptor for the socket to be looked up.
125
126      name points to a sockaddr structure which will hold the resulting address
127      information.  Normal use requires one to use a structure specific to the
128      protocol family in use, such as sockaddr_in (IPv4) or sockaddr_in6
129      (IPv6), cast to a (struct sockaddr *).
130
131      For greater portability (such as newer protocol families) the new struc-
132      ture sockaddr_storage exists.  sockaddr_storage is large enough to hold
133      any of the other sockaddr_* variants.  On return, it should be cast to
134      the correct sockaddr type, according to the current protocol family.
135
136      namelen Indicates the amount of space pointed to by name, in bytes.  Upon
137      return, namelen is set to the actual size of the returned address infor-
138      mation.
139
140      If the address of the destination socket for a given socket connection is
141      needed, the getpeername(2) function should be used instead.
142
143      If name does not point to enough space to hold the entire socket address,
144      the result will be truncated to namelen bytes.
145
146 RETURN VALUES
147      On success, getsockname() returns a 0, and namelen is set to the actual
148      size of the socket address returned in name.  Otherwise, errno is set,
149      and a value of -1 is returned.
150
151 ERRORS
152      If getsockname() fails, errno is set to one of the following:
153
154      [EBADF]            The argument s is not a valid descriptor.
155
156      [ENOTSOCK]         The argument s is a file, not a socket.
157
158      [ENOBUFS]          Insufficient resources were available in the system to
159                         perform the operation.
160
161      [EFAULT]           The name parameter points to memory not in a valid
162                         part of the process address space.
163
164 SEE ALSO
165      accept(2), bind(2), getpeername(2), getpeereid(2), socket(2)
166
167 BUGS
168      Names bound to sockets in the UNIX domain are inaccessible; getsockname
169      returns a zero length name.
170
171 HISTORY
172      The getsockname() function call appeared in 4.2BSD.
173
174 BSD                              July 17, 1999                             BSD
175     </PRE
176 ></TD
177 ></TR
178 ></TABLE
179 ></DIV
180 ><DIV
181 CLASS="NAVFOOTER"
182 ><HR
183 ALIGN="LEFT"
184 WIDTH="100%"><TABLE
185 SUMMARY="Footer navigation table"
186 WIDTH="100%"
187 BORDER="0"
188 CELLPADDING="0"
189 CELLSPACING="0"
190 ><TR
191 ><TD
192 WIDTH="33%"
193 ALIGN="left"
194 VALIGN="top"
195 ><A
196 HREF="net-common-tcpip-manpages-getpeername.html"
197 ACCESSKEY="P"
198 >Prev</A
199 ></TD
200 ><TD
201 WIDTH="34%"
202 ALIGN="center"
203 VALIGN="top"
204 ><A
205 HREF="ecos-ref.html"
206 ACCESSKEY="H"
207 >Home</A
208 ></TD
209 ><TD
210 WIDTH="33%"
211 ALIGN="right"
212 VALIGN="top"
213 ><A
214 HREF="net-common-tcpip-manpages-getsockopt.html"
215 ACCESSKEY="N"
216 >Next</A
217 ></TD
218 ></TR
219 ><TR
220 ><TD
221 WIDTH="33%"
222 ALIGN="left"
223 VALIGN="top"
224 >getpeername</TD
225 ><TD
226 WIDTH="34%"
227 ALIGN="center"
228 VALIGN="top"
229 ><A
230 HREF="tcpip-library-reference.html"
231 ACCESSKEY="U"
232 >Up</A
233 ></TD
234 ><TD
235 WIDTH="33%"
236 ALIGN="right"
237 VALIGN="top"
238 >getsockopt</TD
239 ></TR
240 ></TABLE
241 ></DIV
242 ></BODY
243 ></HTML
244 >