Switch from OpenSSL 0.9.7d to 0.9.7e.
[dragonfly.git] / secure / lib / libcrypto / man / BIO_s_fd.3
CommitLineData
74dab6c2
JR
1.rn '' }`
2''' $RCSfile$$Revision$$Date$
3'''
4''' $Log$
5'''
6.de Sh
984263bc
MD
7.br
8.if t .Sp
9.ne 5
10.PP
11\fB\\$1\fR
12.PP
13..
74dab6c2 14.de Sp
984263bc
MD
15.if t .sp .5v
16.if n .sp
17..
74dab6c2 18.de Ip
984263bc
MD
19.br
20.ie \\n(.$>=3 .ne \\$3
21.el .ne 3
22.IP "\\$1" \\$2
23..
74dab6c2 24.de Vb
984263bc
MD
25.ft CW
26.nf
27.ne \\$1
28..
74dab6c2 29.de Ve
984263bc
MD
30.ft R
31
32.fi
33..
74dab6c2
JR
34'''
35'''
36''' Set up \*(-- to give an unbreakable dash;
37''' string Tr holds user defined translation string.
38''' Bell System Logo is used as a dummy character.
39'''
984263bc 40.tr \(*W-|\(bv\*(Tr
984263bc 41.ie n \{\
74dab6c2
JR
42.ds -- \(*W-
43.ds PI pi
44.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
45.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
46.ds L" ""
47.ds R" ""
48''' \*(M", \*(S", \*(N" and \*(T" are the equivalent of
49''' \*(L" and \*(R", except that they are used on ".xx" lines,
50''' such as .IP and .SH, which do another additional levels of
51''' double-quote interpretation
52.ds M" """
53.ds S" """
54.ds N" """""
55.ds T" """""
56.ds L' '
57.ds R' '
58.ds M' '
59.ds S' '
60.ds N' '
61.ds T' '
984263bc
MD
62'br\}
63.el\{\
74dab6c2
JR
64.ds -- \(em\|
65.tr \*(Tr
66.ds L" ``
67.ds R" ''
68.ds M" ``
69.ds S" ''
70.ds N" ``
71.ds T" ''
72.ds L' `
73.ds R' '
74.ds M' `
75.ds S' '
76.ds N' `
77.ds T' '
78.ds PI \(*p
984263bc 79'br\}
74dab6c2
JR
80.\" If the F register is turned on, we'll generate
81.\" index entries out stderr for the following things:
82.\" TH Title
83.\" SH Header
84.\" Sh Subsection
85.\" Ip Item
86.\" X<> Xref (embedded
87.\" Of course, you have to process the output yourself
88.\" in some meaninful fashion.
89.if \nF \{
90.de IX
91.tm Index:\\$1\t\\n%\t"\\$2"
984263bc 92..
74dab6c2
JR
93.nr % 0
94.rr F
984263bc 95.\}
74dab6c2
JR
96.TH BIO_s_fd 3 "0.9.7d" "2/Sep/2004" "OpenSSL"
97.UC
98.if n .hy 0
984263bc 99.if n .na
74dab6c2
JR
100.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
101.de CQ \" put $1 in typewriter font
102.ft CW
103'if n "\c
104'if t \\&\\$1\c
105'if n \\&\\$1\c
106'if n \&"
107\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7
108'.ft R
109..
110.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2
111. \" AM - accent mark definitions
984263bc 112.bd B 3
74dab6c2 113. \" fudge factors for nroff and troff
984263bc 114.if n \{\
74dab6c2
JR
115. ds #H 0
116. ds #V .8m
117. ds #F .3m
118. ds #[ \f1
119. ds #] \fP
984263bc
MD
120.\}
121.if t \{\
74dab6c2
JR
122. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
123. ds #V .6m
124. ds #F 0
125. ds #[ \&
126. ds #] \&
984263bc 127.\}
74dab6c2 128. \" simple accents for nroff and troff
984263bc 129.if n \{\
74dab6c2
JR
130. ds ' \&
131. ds ` \&
132. ds ^ \&
133. ds , \&
134. ds ~ ~
135. ds ? ?
136. ds ! !
137. ds /
138. ds q
984263bc
MD
139.\}
140.if t \{\
74dab6c2
JR
141. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
142. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
143. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
144. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
145. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
146. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10'
147. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m'
148. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
149. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10'
984263bc 150.\}
74dab6c2 151. \" troff and (daisy-wheel) nroff accents
984263bc
MD
152.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
153.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
74dab6c2
JR
154.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#]
155.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u'
156.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u'
157.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#]
984263bc
MD
158.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
159.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
160.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
161.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
162.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
163.ds ae a\h'-(\w'a'u*4/10)'e
164.ds Ae A\h'-(\w'A'u*4/10)'E
74dab6c2
JR
165.ds oe o\h'-(\w'o'u*4/10)'e
166.ds Oe O\h'-(\w'O'u*4/10)'E
167. \" corrections for vroff
984263bc
MD
168.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
169.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
74dab6c2 170. \" for low resolution devices (crt and lpr)
984263bc
MD
171.if \n(.H>23 .if \n(.V>19 \
172\{\
74dab6c2
JR
173. ds : e
174. ds 8 ss
175. ds v \h'-1'\o'\(aa\(ga'
176. ds _ \h'-1'^
177. ds . \h'-1'.
178. ds 3 3
179. ds o a
180. ds d- d\h'-1'\(ga
181. ds D- D\h'-1'\(hy
182. ds th \o'bp'
183. ds Th \o'LP'
184. ds ae ae
185. ds Ae AE
186. ds oe oe
187. ds Oe OE
984263bc
MD
188.\}
189.rm #[ #] #H #V #F C
984263bc 190.SH "NAME"
74dab6c2 191BIO_s_fd, BIO_set_fd, BIO_get_fd, BIO_new_fd \- file descriptor BIO
984263bc 192.SH "SYNOPSIS"
74dab6c2 193.PP
984263bc
MD
194.Vb 1
195\& #include <openssl/bio.h>
196.Ve
197.Vb 1
198\& BIO_METHOD * BIO_s_fd(void);
199.Ve
200.Vb 2
201\& #define BIO_set_fd(b,fd,c) BIO_int_ctrl(b,BIO_C_SET_FD,c,fd)
202\& #define BIO_get_fd(b,c) BIO_ctrl(b,BIO_C_GET_FD,0,(char *)c)
203.Ve
204.Vb 1
205\& BIO *BIO_new_fd(int fd, int close_flag);
206.Ve
207.SH "DESCRIPTION"
74dab6c2 208\fIBIO_s_fd()\fR returns the file descriptor BIO method. This is a wrapper
984263bc
MD
209round the platforms file descriptor routines such as \fIread()\fR and \fIwrite()\fR.
210.PP
74dab6c2
JR
211\fIBIO_read()\fR and \fIBIO_write()\fR read or write the underlying descriptor.
212\fIBIO_puts()\fR is supported but \fIBIO_gets()\fR is not.
984263bc
MD
213.PP
214If the close flag is set then then \fIclose()\fR is called on the underlying
74dab6c2 215file descriptor when the BIO is freed.
984263bc 216.PP
74dab6c2
JR
217\fIBIO_reset()\fR attempts to change the file pointer to the start of file
218using \fIlseek\fR\|(fd, 0, 0).
984263bc 219.PP
74dab6c2
JR
220\fIBIO_seek()\fR sets the file pointer to position \fBofs\fR from start of file
221using \fIlseek\fR\|(fd, ofs, 0).
984263bc 222.PP
74dab6c2 223\fIBIO_tell()\fR returns the current file position by calling \fIlseek\fR\|(fd, 0, 1).
984263bc 224.PP
74dab6c2 225\fIBIO_set_fd()\fR sets the file descriptor of BIO \fBb\fR to \fBfd\fR and the close
984263bc
MD
226flag to \fBc\fR.
227.PP
74dab6c2
JR
228\fIBIO_get_fd()\fR places the file descriptor in \fBc\fR if it is not NULL, it also
229returns the file descriptor. If \fBc\fR is not NULL it should be of type
984263bc
MD
230(int *).
231.PP
74dab6c2 232\fIBIO_new_fd()\fR returns a file descriptor BIO using \fBfd\fR and \fBclose_flag\fR.
984263bc 233.SH "NOTES"
984263bc
MD
234The behaviour of \fIBIO_read()\fR and \fIBIO_write()\fR depends on the behavior of the
235platforms \fIread()\fR and \fIwrite()\fR calls on the descriptor. If the underlying
74dab6c2 236file descriptor is in a non blocking mode then the BIO will behave in the
984263bc
MD
237manner described in the BIO_read(3) and BIO_should_retry(3)
238manual pages.
239.PP
240File descriptor BIOs should not be used for socket I/O. Use socket BIOs
241instead.
242.SH "RETURN VALUES"
74dab6c2 243\fIBIO_s_fd()\fR returns the file descriptor BIO method.
984263bc 244.PP
74dab6c2
JR
245\fIBIO_reset()\fR returns zero for success and \-1 if an error occurred.
246\fIBIO_seek()\fR and \fIBIO_tell()\fR return the current file position or \-1
984263bc
MD
247is an error occurred. These values reflect the underlying \fIlseek()\fR
248behaviour.
249.PP
74dab6c2 250\fIBIO_set_fd()\fR always returns 1.
984263bc 251.PP
74dab6c2 252\fIBIO_get_fd()\fR returns the file descriptor or \-1 if the BIO has not
984263bc
MD
253been initialized.
254.PP
74dab6c2 255\fIBIO_new_fd()\fR returns the newly allocated BIO or NULL is an error
984263bc
MD
256occurred.
257.SH "EXAMPLE"
74dab6c2 258This is a file descriptor BIO version of \*(L"Hello World":
984263bc
MD
259.PP
260.Vb 4
261\& BIO *out;
262\& out = BIO_new_fd(fileno(stdout), BIO_NOCLOSE);
263\& BIO_printf(out, "Hello World\en");
264\& BIO_free(out);
265.Ve
266.SH "SEE ALSO"
984263bc
MD
267BIO_seek(3), BIO_tell(3),
268BIO_reset(3), BIO_read(3),
269BIO_write(3), BIO_puts(3),
270BIO_gets(3), BIO_printf(3),
271BIO_set_close(3), BIO_get_close(3)
74dab6c2
JR
272
273.rn }` ''
274.IX Title "BIO_s_fd 3"
275.IX Name "BIO_s_fd, BIO_set_fd, BIO_get_fd, BIO_new_fd - file descriptor BIO"
276
277.IX Header "NAME"
278
279.IX Header "SYNOPSIS"
280
281.IX Header "DESCRIPTION"
282
283.IX Header "NOTES"
284
285.IX Header "RETURN VALUES"
286
287.IX Header "EXAMPLE"
288
289.IX Header "SEE ALSO"
290