BIO_READ(3ssl) OpenSSL BIO_READ(3ssl) BIO_read_ex BIO_write_ex BIO_read BIO_write BIO_gets BIO_get_line BIO_puts - / BIO #include int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); int BIO_read(BIO *b, void *data, int dlen); int BIO_gets(BIO *b, char *buf, int size); int BIO_get_line(BIO *b, char *buf, int size); int BIO_write(BIO *b, const void *data, int dlen); int BIO_puts(BIO *b, const char *buf); BIO_read_ex() dlen BIO b data. *readbytes. BIO_write_ex() dlen data BIO b. *written written NULL. BIO_read() len BIO b buf. BIO_gets() "gets" BIO buf. BIO size-1. BIO_gets() BIO BIOs BIO_gets() . NUL '\n' . NUL ( ) . BIO_get_line() BIO b '\n' size-1 buf. NUL '\n' . NUL ( ) . . BIO_write() len buf BIO b. BIO_puts() NUL buf BIO b NUL '\n' ( fputs(3) puts(3)). BIO_read_ex() 1 0 . BIO_write_ex() 1 0 . 0 . BIO_write() -2 "write" BIO -1 . . 0 BIO b NULL dlen <= 0. BIO_gets() -2 "gets" BIO -1 . NUL . NUL . ( ) 0 -1. -2 BIO . 0 -1 . / . ( select() poll() ) read() . BIOs ( select() / BIO_read() ) BIO_read() ( BIOs SSL) / . select() ( ) / . BIO_should_retry(3) / . "gets" BIO BIO_get_line(). BIO_gets() "gets" BIO BIO_f_buffer(3) . BIO_should_retry(3) BIO_gets() 1.1.0 BIO BIO_fd() '\n' . BIO_get_line() OpenSSL 3.0. BIO_write_ex() 1 0 written NULL OpenSSL 3.0. 2000-2026 OpenSSL. . Apache 2.0 ( ""). . LICENSE . 3 . . : . 3.6.2 7 2026 BIO_READ(3ssl)