5 BIO_s_fd, BIO_set_fd, BIO_get_fd, BIO_new_fd - file descriptor BIO
9 #include <openssl/bio.h>
11 const BIO_METHOD *BIO_s_fd(void);
13 int BIO_set_fd(BIO *b, int fd, int c);
14 int BIO_get_fd(BIO *b, int *c);
16 BIO *BIO_new_fd(int fd, int close_flag);
20 BIO_s_fd() returns the file descriptor BIO method. This is a wrapper
21 round the platforms file descriptor routines such as read() and write().
23 BIO_read() and BIO_write() read or write the underlying descriptor.
24 BIO_puts() is supported but BIO_gets() is not.
26 If the close flag is set then close() is called on the underlying
27 file descriptor when the BIO is freed.
29 BIO_reset() attempts to change the file pointer to the start of file
30 such as by using B<lseek(fd, 0, 0)>.
32 BIO_seek() sets the file pointer to position B<ofs> from start of file
33 such as by using B<lseek(fd, ofs, 0)>.
35 BIO_tell() returns the current file position such as by calling
38 BIO_set_fd() sets the file descriptor of BIO B<b> to B<fd> and the close
41 BIO_get_fd() places the file descriptor in B<c> if it is not NULL, it also
42 returns the file descriptor.
44 BIO_new_fd() returns a file descriptor BIO using B<fd> and B<close_flag>.
48 The behaviour of BIO_read() and BIO_write() depends on the behavior of the
49 platforms read() and write() calls on the descriptor. If the underlying
50 file descriptor is in a non blocking mode then the BIO will behave in the
51 manner described in the L<BIO_read(3)> and L<BIO_should_retry(3)>
54 File descriptor BIOs should not be used for socket I/O. Use socket BIOs
57 BIO_set_fd() and BIO_get_fd() are implemented as macros.
61 BIO_s_fd() returns the file descriptor BIO method.
63 BIO_set_fd() always returns 1.
65 BIO_get_fd() returns the file descriptor or -1 if the BIO has not
68 BIO_new_fd() returns the newly allocated BIO or NULL is an error
73 This is a file descriptor BIO version of "Hello World":
77 out = BIO_new_fd(fileno(stdout), BIO_NOCLOSE);
78 BIO_printf(out, "Hello World\n");
83 L<BIO_seek(3)>, L<BIO_tell(3)>,
84 L<BIO_reset(3)>, L<BIO_read(3)>,
85 L<BIO_write(3)>, L<BIO_puts(3)>,
86 L<BIO_gets(3)>, L<BIO_printf(3)>,
87 L<BIO_set_close(3)>, L<BIO_get_close(3)>
91 Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
93 Licensed under the OpenSSL license (the "License"). You may not use
94 this file except in compliance with the License. You can obtain a copy
95 in the file LICENSE in the source distribution or at
96 L<https://www.openssl.org/source/license.html>.