File: getsockopt.2

package info (click to toggle)
manpages-ja 0.4.0.0.20000115-2
  • links: PTS
  • area: main
  • in suites: potato
  • size: 8,760 kB
  • ctags: 3
  • sloc: sh: 6,269; perl: 155; makefile: 55
file content (389 lines) | stat: -rw-r--r-- 11,733 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
.\" Copyright (c) 1983, 1991 The Regents of the University of California.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by the University of
.\"	California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" 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.
.\"
.\"     @(#)getsockopt.2	6.9 (Berkeley) 5/1/91
.\"
.\" Modified Sat Jul 24 16:19:32 1993 by Rik Faith (faith@cs.unc.edu)
.\" Modified Mon Apr 22 02:29:06 1996 by Martin Schulze (joey@infodrom.north.de)
.\" Modified Tue Aug 27 10:52:51 1996 by Andries Brouwer (aeb@cwi.nl)
.\" Modified Thu Jan 23 13:29:34 1997 by Andries Brouwer (aeb@cwi.nl)
.\"
.\" Japanese Version Copyright (c) 1996 Akira Yoshiyama
.\"         all rights reserved.
.\" Translated Sat Jul  6 00:43:37 JST 1996
.\"         by Akira Yoshiyama <yosshy@jedi.seg.kobe-u.ac.jp>
.\" Modified Fri Nov  7 22:45:27 JST 1997
.\"         by HANATAKA Shinya <hanataka@abyss.rim.or.jp>
.\"
.TH GETSOCKOPT 2 "22 April 1996" "BSD Man Page" "Linux Programmer's Manual"
.SH ̾
getsockopt, setsockopt \- åȤΥץȼԤʤ
.SH 
.B #include <sys/types.h>
.br
.B #include <sys/socket.h>
.sp 2
.BI "int getsockopt(int " s ", int " level ", int " optname ,
.BI "void *" optval ", int *" optlen );
.sp
.BI "int setsockopt(int " s ", int " level ", int " optname ,
.BI "const void *" optval ", int " optlen );
.SH 
.B getsockopt

.B setsockopt
ϥåȤ˴Ϣ
.I options
롣ץʣΥץȥ(level)¸ߤ뤫⤷ʤ
Ͼ˺Ǿ̤
.B socket
ؤؤꤵ롣

åȡץݤˤϡץ(level)ȥץ
̾ꤷʤФʤʤåؤǥץ٤ˤϡ
.I level

.BR SOL_SOCKET 
˻ꤹ롣
¾Ƥؤǥץ٤ˤϡͿ줿ץ
ΤȤʤץȥΥץȥֹꤹ롣㤨С
ץ
.B TCP
ץȥDzᤵ٤Ȥؼˤϡ
.I level

.BR TCP
ΥץȥֹꤷʤФʤʤ
.BR getprotoent (3)
򻲾Ȥ뤳ȡ

.I optval

.I optlen
ѥ᡼
.BR setsockopt
ǻѤ륪ץͤȤƻѤ롣
.B getsockopt
Ǥ׵ᤷץ֤ͤΥХåեꤹ롣
.BR getsockopt 
Ǥ
.I optlen
ͤȷξѤΥѥ᡼ǡǽ
.IR optval 
λؤƤХåեΥͿºݤ֤ͤΥ
񤭴롣⤷ץͤͿ֤⤷ʤˤ
.I optval
 NULL Ǥɤ

.I optname
ӻꤵ줿ץϲᤵ줺ˡŬڤʥץȥ롦⥸塼
ϤƲᤵ롣󥯥롼ɡե
.I <sys/socket.h>
ˤϸҤΥåؤΥץޤޤƤ롣
¾ΥץȥؤǤ̾ϰۤʤ롣4ϤŬڤʥޥ˥奢
Ȥ뤳ȡ

ۤȤɤΥåؤΥץ
.IR optval

.I int
ѥ᡼Ѥ롣
.BR setsockopt 
ǡ(boolean)ץͭ(enable)ˤˤϥʳꤷ
̵(disable)ˤˤϥꤹ롣
.B SO_LINGER
ϥѥ᡼Ȥ
.IR <linux/socket.h> 
줿
.I linger ¤
Ѥ롣ι¤ΤˤϤΥץ˾Τޤ֤
ٱ(linger interval)()ꤹ롣
.B SO_SNDTIMEO

.B SO_RCVTIMEO

.IR <sys/time.h> 
줿
.I timeval ¤
ѥ᡼ȤƻѤ롣

ʲΥץϥåؤǧ롣
äƤʤСgetsockopt Ĵ setsockopt Ǥ롣
.TP 0.8i
SO_DEBUG
ǥХåεϿͭˤ
.TP
SO_REUSEADDR
롦ɥ쥹κѤǽˤ
.TP
SO_KEEPALIVE
³Ƥ(alive)֤ݤ
.TP
SO_DONTROUTE
̿Υ롼ƥ󥰤αͭˤ
.TP
SO_LINGER
ǡ¸ߤ˥(close)ٱ䤵
.TP
SO_BROADCAST
֥ɥ㥹̿ĤͿ
.TP
SO_OOBINLINE
Ӱ賰(out-of-band)ǡӰǤμͭˤ
.TP
SO_SNDBUF
ѤΥХåեꤹ
.TP
SO_RCVBUF
ѤΥХåեꤹ
.TP
SO_SNDLOWAT
κǾͤꤹ
.TP
SO_RCVLOWAT
κǾͤꤹ
.TP
SO_SNDTIMEO
λڤ(timeout)ͤ (Τ߲ǽ)
.TP
SO_RCVTIMEO
λڤ(timeout)ͤ (Τ߲ǽ)
.TP
SO_TYPE
åȤη (Τ߲ǽ)
.TP
SO_ERROR
åȤΥ顼֤褷򥯥ꥢ (Τ߲ǽ)
.PP
.B SO_DEBUG
ϲؤΥץȥ롦⥸塼ΥǥХåͭˤ롣
.B SO_REUSEADDR

.BR bind (2)
Ϳ줿ͭʥɥ쥹Ѥ뤿ε§
롦ɥ쥹κƻѤȤؼ롣
.B SO_KEEPALIVE
³줿åȤŪ˥å褦ˤ롣
³꤬Υåؤα˼Ԥ硢
³ڤ줿Ȥߤʤ졢åȤѤƤץ
ǡ褦Ȼߤ
.B SIGPIPE
ʥΤ롣
.B SO_DONTROUTE
ϳ̿ɸΥ롼ƥ󥰵ǽ򱪲󤹤뤳Ȥؼ롣
ˡ̿Ūɥ쥹Υͥåȥʬ򻲾ȤŬڤ
ͥåȥ󥿡եؤľ롣

.B SO_LINGER
̤ΥååȾΥ塼äƤ֤
.BR close (2)
¹Ԥ줿ˤȤư椹롣
åȤǡγμ¤žݾڤƤơ
.B SO_LINGER
ꤵƤ硢ƥϥǡžǽˤʤ뤫
žԲǽǤȷꤵޤǡƥ
.B close
ν(block)롣(ڤ(time out)֤
.B SO_LINGER
׵ᤷ
.B setsockopt
ǻꤷٱ(linger	interval)Ȥʤ롣)
.B SO_LINGER
̵
.B close
¹Ԥ줿硢ƥϤ close Ԥʤ
Ǥ᤯³Ǥ褦ˤ롣

.I linger
¤Τ
.I <linux/socket.h>
ǰʲΤ褦Ƥ:
.sp
.RS
.nf
.ta 8n 16n 32n
struct linger {
        int  l_onoff;   /* Linger active */
        int  l_linger;  /* How long to linger for */
};
.ta
.fi
.RE

.B l_onoff
ٱԤʤɤؼ롣 1 ꤹ
.B l_linger
˥ץ
.BR close 
ԤʤޤǤˤɤλ֤ԤĤɴʬΰñ̤
ޤޤƤȤߤʤ
.B l_onoff
˥ꤷ硢ץϥƥࡦ뤫餹֤äƤ롣

.B SO_BROADCAST
ץϥåȤ˥ǡ֥ɥ㥹Ȥ뤳Ȥ
Ĥ롣
֥ɥ㥹ȤϽΥСΥƥǤøä
Ӱ賰ǡ򥵥ݡȤץȥǡ
.B SO_OOBINLINE
ץӰ賰ǡ̾ϥ塼˼ǡȤ֤
Ȥ׵᤹; 
.B MSG_OOB
ե饰ѤʤƤ⡢
.B recv

.B read
ǥ뤳ȤǤ롣ĤΥץȥϾ
ΥץꤵƤ뤫Τ褦˺ư롣

.B SO_SNDBUF

.B SO_RCVBUF
Ϥ줾Хåե˳Ƥ줿ХåեΥ
ѹ롣̤³Τ˥ХåեΥäꡢ
ǡѤ¤뤿˥Хåե򸺾Ǥ롣

.B SO_SNDLOWAT
ץΤκ̤ꤹ롣ۤɤνǤ
ΥˤäͿ줿ǡƽΤ˥ץȥ
˥ǡꡢեΤɬפʤ(block)
ꤹ롣(non-blocking)Ǥϡߤ뤳Ȥʤ
եǤвǽʸ¤Υǡ롣ե椬
̤ξ̥ǡƤʤäꡢ٤Ƥ
뤳Ȥ׵ᤷƤˤϥǡʤ
åȤؤν񤭹ߤ
.BR select (2)
ϡ̤ǤˤΤ߿Ȥʤ롣
.B SO_SNDLOWAT
ΥǥեͤϥͥåȥΨɤͤꤵƤꡢ
Ƥ 1024 Ǥ롣

.B SO_RCVLOWAT
ץϼκ̤ꤹ롣̤ˡѤΥ
ʤ餫Υǡޤߤ롣׵ᤵ줿̤
꾮ǽʸ¤̤֤
.B SO_RCVLOWAT
ΥǥեȤ 1Ǥ롣⤷
.B SO_RCVLOWAT
礭ͤꤵ줿硢κ̤׵ᤵ줿̤Υǡ
ޤߤ롣ξǤ
顼ȯꡢʥꡢ
塼μΥǡη֤٤ΤȰۤʤäƤ
ˤϾʤ̥ǡ֤⤷ʤ

.B SO_SNDTIMEO
ץλڤ(timeout)λ֤롣
(
.I getsockopt
ǤΤ߻ѤǤ)
λޤǤԤ֤θ³äȥޥä
.I struct timeval
ѥ᡼Ѥ֤⤷λ֤ߤȡ
ʬŪǤͤǤʤäˤ
.B EWOULDBLOCK
顼֤ߤμˤơΥޡɲäΥǡ
ץȥϤ뤴Ȥ˺Ƶư졢¤κ̤
ǹ̤ޤǤΥϰϤνʬŬѤ뤳Ȥ̣Ƥ롣

.B SO_RCVTIMEO
ץϼλڤ(timeout)λ֤롣
(
.I getsockopt
ǤΤ߻ѤǤ)
ϼλޤǤԤ֤θ³äȥޥä
.I struct timeval
ѥ᡼Ѥ֤ߤμˤơΥޡ
ץȥ꿷ʥǡ뤴Ȥ˺Ƶư롣
ǤưʤޡΤ褦ˤʤ롣
⤷ɲäΥǡǤˡλ֤ߤˤϡ
꾯ʤǡǡǤʤäˤ
.B EWOULDBLOCK
顼֤

Ǹ
.B SO_TYPE

.B SO_ERROR
ץ
.IR getsockopt
ǤΤ߻Ѥ롣
.B SO_TYPE

.BR SOCK_STREAM
Τ褦ʥåȤη֤;
ϵưΥåȤѤСǤ롣
.B SO_ERROR
̤ΥåȤΥ顼֤顼֤򥯥ꥢ롣
ǡ³ΥåȤˤƱ(asynchronous)顼䡢
¾Ʊ顼Υå˻ѤǤ롣
.SH ֤
ˤϥ֤顼ˤ -1 ֤졢
.I errno
Ŭڤꤵ롣
.SH 顼
.TP
.B EBADF

.I s
ͭʥǥץǤʤ
.TP
.B ENOTSOCK

.I s
ϥեǤꡢåȤǤʤ
.TP
.B ENOPROTOOPT
ꤵ줿(level)ˤϤΥץ¸ߤʤ
.TP
.B EFAULT
.I optval
ǻꤵ줿ɥ쥹ץΥɥ쥹֤ͭʬǤϤʤ
.BR getsockopt 
ξ硢
.I optlen
ץΥɥ쥹֤ͭʬǤʤˤ⤳Υ顼֤롣
.SH 
SVr4, 4.4BSD (Υƥࡦ 4.2BSD Ǻǽ˸줿)
SVr4 ˤ¾ ENOMEM  ENOSR 顼ɤˤĤƤ⵭ҤƤ롣

.BR SO_SNDLOWAT ", " SO_RCVLOWAT ", " SO_SNDTIMEO ", " SO_RCVTIMEO
ץ˴ؤ뵭ҤϤʤ
.SH Х
åȤΥץΤĤϥƥΤ㤤ؤ
٤Ǥ롣
.SH Ϣ
.BR ioctl (2),
.BR socket (2),
.BR getprotoent (3),
.BR protocols (5),
.BR socket (7),
.BR unix (7),
.BR tcp (7)