]> git.ipfire.org Git - thirdparty/openssl.git/blame - doc/man3/BIO_s_fd.pod
Make BIGNUM rand functions available within the FIPS module
[thirdparty/openssl.git] / doc / man3 / BIO_s_fd.pod
CommitLineData
02ef611e
DSH
1=pod
2
3=head1 NAME
4
8eec1389 5BIO_s_fd, BIO_set_fd, BIO_get_fd, BIO_new_fd - file descriptor BIO
02ef611e
DSH
6
7=head1 SYNOPSIS
8
9 #include <openssl/bio.h>
10
91da5e77 11 const BIO_METHOD *BIO_s_fd(void);
02ef611e 12
91da5e77
RS
13 int BIO_set_fd(BIO *b, int fd, int c);
14 int BIO_get_fd(BIO *b, int *c);
02ef611e
DSH
15
16 BIO *BIO_new_fd(int fd, int close_flag);
17
18=head1 DESCRIPTION
19
bace2124 20BIO_s_fd() returns the file descriptor BIO method. This is a wrapper
02ef611e
DSH
21round the platforms file descriptor routines such as read() and write().
22
b055fceb 23BIO_read_ex() and BIO_write_ex() read or write the underlying descriptor.
e17b7128
RL
24BIO_puts() is supported but BIO_gets() is not.
25
b9b6a7e5 26If the close flag is set then close() is called on the underlying
e17b7128
RL
27file descriptor when the BIO is freed.
28
29BIO_reset() attempts to change the file pointer to the start of file
91da5e77 30such as by using B<lseek(fd, 0, 0)>.
e17b7128
RL
31
32BIO_seek() sets the file pointer to position B<ofs> from start of file
91da5e77 33such as by using B<lseek(fd, ofs, 0)>.
e17b7128 34
91da5e77
RS
35BIO_tell() returns the current file position such as by calling
36B<lseek(fd, 0, 1)>.
e17b7128 37
02ef611e
DSH
38BIO_set_fd() sets the file descriptor of BIO B<b> to B<fd> and the close
39flag to B<c>.
40
41BIO_get_fd() places the file descriptor in B<c> if it is not NULL, it also
91da5e77 42returns the file descriptor.
02ef611e 43
1e4e5492 44BIO_new_fd() returns a file descriptor BIO using B<fd> and B<close_flag>.
02ef611e
DSH
45
46=head1 NOTES
47
b055fceb 48The behaviour of BIO_read_ex() and BIO_write_ex() depends on the behavior of the
1bc74519 49platforms read() and write() calls on the descriptor. If the underlying
02ef611e 50file descriptor is in a non blocking mode then the BIO will behave in the
b055fceb 51manner described in the L<BIO_read_ex(3)> and L<BIO_should_retry(3)>
02ef611e
DSH
52manual pages.
53
54File descriptor BIOs should not be used for socket I/O. Use socket BIOs
55instead.
56
91da5e77
RS
57BIO_set_fd() and BIO_get_fd() are implemented as macros.
58
02ef611e
DSH
59=head1 RETURN VALUES
60
61BIO_s_fd() returns the file descriptor BIO method.
62
02ef611e
DSH
63BIO_set_fd() always returns 1.
64
65BIO_get_fd() returns the file descriptor or -1 if the BIO has not
1e4e5492 66been initialized.
02ef611e
DSH
67
68BIO_new_fd() returns the newly allocated BIO or NULL is an error
69occurred.
70
71=head1 EXAMPLE
72
73This is a file descriptor BIO version of "Hello World":
74
75 BIO *out;
700b8145 76
02ef611e
DSH
77 out = BIO_new_fd(fileno(stdout), BIO_NOCLOSE);
78 BIO_printf(out, "Hello World\n");
79 BIO_free(out);
80
81=head1 SEE ALSO
82
9b86974e 83L<BIO_seek(3)>, L<BIO_tell(3)>,
b055fceb
MC
84L<BIO_reset(3)>, L<BIO_read_ex(3)>,
85L<BIO_write_ex(3)>, L<BIO_puts(3)>,
9b86974e
RS
86L<BIO_gets(3)>, L<BIO_printf(3)>,
87L<BIO_set_close(3)>, L<BIO_get_close(3)>
99ec4fdb 88
e2f92610
RS
89=head1 COPYRIGHT
90
91Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
92
4746f25a 93Licensed under the Apache License 2.0 (the "License"). You may not use
e2f92610
RS
94this file except in compliance with the License. You can obtain a copy
95in the file LICENSE in the source distribution or at
96L<https://www.openssl.org/source/license.html>.
97
98=cut