*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> BIO_write (3)              



NAME    [Toc]    [Back]

       BIO_read,  BIO_write,  BIO_gets,  BIO_puts - BIO I/O functions

SYNOPSIS    [Toc]    [Back]

       #include <openssl/bio.h>

       int  BIO_read(
               BIO *b,
               void *buf,
               int len ); int  BIO_gets(
               BIO *b,
               char *buf,
               int size ); int  BIO_write(
               BIO *b,
               const void *buf,
               int len ); int  BIO_puts(
               BIO *b,
               const char *buf );

DESCRIPTION    [Toc]    [Back]

       The BIO_read() function attempts to read  len  bytes  from
       BIO b and places the data in buf.

       The  BIO_gets()  function performs the BIOs gets operation
       and places the data in buf. Usually  this  operation  will
       attempt  to  read  a  line of data from the BIO of maximum
       length len. However, there are  exceptions  to  this.  For
       example,  BIO_gets()  on  a  digest BIO will calculate and
       return the  digest,  and  other  BIOs  might  not  support

       The  BIO_write() function attempts to write len bytes from
       buf to BIO b.

       The BIO_puts() function attempts to write  a  null  terminated
 string buf to BIO b

NOTES    [Toc]    [Back]

       A  0  or  -1 return might indicate an error. However, when
       the source/sink is non-blocking or of a certain  type,  it
       might  be an indication that no data is available and that
       the application should retry the operation later.

       One technique sometimes used with blocking sockets  is  to
       use  a  system  call (such as select(), poll(), or equivalent)
 to determine when data is available, and  then  call
       read()  to  read  the data. The equivalent with BIOs (that
       is, call select() on the underlying I/O structure and then
       call  BIO_read()  to  read  the  data)  should not be used
       because a single call  to  BIO_read()  can  cause  several
       reads (and writes in the case of SSL BIOs) on the underlying
 I/O structure and  may  block  as  a  result.  Instead
       select() (or equivalent) should be combined with nonblocking
 I/O so successive reads will request a  retry  instead
       of blocking.

       See  BIO_should_retry(3)  for  details of how to determine
       the cause of a retry and other I/O issues.

       If the BIO_gets() function is not supported by a BIO  then
       it  is  possible to work around this by adding a buffering
       BIO, BIO_f_buffer(), to the chain.

RETURN VALUES    [Toc]    [Back]

       All these functions return either the amount of data  successfully
  read  or  written (if the return value is positive)
 or that no data was successfully read or written  if
       the  result is 0 or -1. If the return value is -2 then the
       operation is not implemented in the specific BIO type.

SEE ALSO    [Toc]    [Back]

       Functions: BIO_should_retry(3)

[ Back ]
 Similar pages
Name OS Title
krb5_timeofday FreeBSD whatever these functions do
krb5_us_timeofday FreeBSD whatever these functions do
MD5_Update OpenBSD MD2, MD4, and MD5 hash functions
mergesort NetBSD sort functions
MD5_Init OpenBSD MD2, MD4, and MD5 hash functions
sinh IRIX hyperbolic functions
MD5_Final OpenBSD MD2, MD4, and MD5 hash functions
disasm IRIX disassembler functions
bessel IRIX bessel functions
heapsort NetBSD sort functions
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service