Current Path : /usr/opt/openssl11/share/doc/openssl/html/man3/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //usr/opt/openssl11/share/doc/openssl/html/man3/BIO_ctrl.html |
<?xml version="1.0" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>BIO_ctrl</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <link rev="made" href="mailto:root@hsxx.drive.ne.jp" /> </head> <body style="background-color: white"> <!-- INDEX BEGIN --> <div name="index"> <p><a name="__index__"></a></p> <ul> <li><a href="#name">NAME</a></li> <li><a href="#synopsis">SYNOPSIS</a></li> <li><a href="#description">DESCRIPTION</a></li> <li><a href="#return_values">RETURN VALUES</a></li> <li><a href="#notes">NOTES</a></li> <li><a href="#bugs">BUGS</a></li> <li><a href="#copyright">COPYRIGHT</a></li> </ul> <hr name="index" /> </div> <!-- INDEX END --> <p> </p> <hr /> <h1><a name="name">NAME</a></h1> <p>BIO_ctrl, BIO_callback_ctrl, BIO_ptr_ctrl, BIO_int_ctrl, BIO_reset, BIO_seek, BIO_tell, BIO_flush, BIO_eof, BIO_set_close, BIO_get_close, BIO_pending, BIO_wpending, BIO_ctrl_pending, BIO_ctrl_wpending, BIO_get_info_callback, BIO_set_info_callback, BIO_info_cb - BIO control operations</p> <p> </p> <hr /> <h1><a name="synopsis">SYNOPSIS</a></h1> <pre> #include <openssl/bio.h></pre> <pre> typedef int BIO_info_cb(BIO *b, int state, int res);</pre> <pre> long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); long BIO_callback_ctrl(BIO *b, int cmd, BIO_info_cb *cb); void *BIO_ptr_ctrl(BIO *bp, int cmd, long larg); long BIO_int_ctrl(BIO *bp, int cmd, long larg, int iarg);</pre> <pre> int BIO_reset(BIO *b); int BIO_seek(BIO *b, int ofs); int BIO_tell(BIO *b); int BIO_flush(BIO *b); int BIO_eof(BIO *b); int BIO_set_close(BIO *b, long flag); int BIO_get_close(BIO *b); int BIO_pending(BIO *b); int BIO_wpending(BIO *b); size_t BIO_ctrl_pending(BIO *b); size_t BIO_ctrl_wpending(BIO *b);</pre> <pre> int BIO_get_info_callback(BIO *b, BIO_info_cb **cbp); int BIO_set_info_callback(BIO *b, BIO_info_cb *cb);</pre> <p> </p> <hr /> <h1><a name="description">DESCRIPTION</a></h1> <p><code>BIO_ctrl()</code>, <code>BIO_callback_ctrl()</code>, <code>BIO_ptr_ctrl()</code> and <code>BIO_int_ctrl()</code> are BIO "control" operations taking arguments of various types. These functions are not normally called directly, various macros are used instead. The standard macros are described below, macros specific to a particular type of BIO are described in the specific BIOs manual page as well as any special features of the standard calls.</p> <p><code>BIO_reset()</code> typically resets a BIO to some initial state, in the case of file related BIOs for example it rewinds the file pointer to the start of the file.</p> <p><code>BIO_seek()</code> resets a file related BIO's (that is file descriptor and FILE BIOs) file position pointer to <strong>ofs</strong> bytes from start of file.</p> <p><code>BIO_tell()</code> returns the current file position of a file related BIO.</p> <p><code>BIO_flush()</code> normally writes out any internally buffered data, in some cases it is used to signal EOF and that no more data will be written.</p> <p><code>BIO_eof()</code> returns 1 if the BIO has read EOF, the precise meaning of "EOF" varies according to the BIO type.</p> <p><code>BIO_set_close()</code> sets the BIO <strong>b</strong> close flag to <strong>flag</strong>. <strong>flag</strong> can take the value BIO_CLOSE or BIO_NOCLOSE. Typically BIO_CLOSE is used in a source/sink BIO to indicate that the underlying I/O stream should be closed when the BIO is freed.</p> <p><code>BIO_get_close()</code> returns the BIOs close flag.</p> <p><code>BIO_pending()</code>, <code>BIO_ctrl_pending()</code>, <code>BIO_wpending()</code> and <code>BIO_ctrl_wpending()</code> return the number of pending characters in the BIOs read and write buffers. Not all BIOs support these calls. <code>BIO_ctrl_pending()</code> and <code>BIO_ctrl_wpending()</code> return a size_t type and are functions, <code>BIO_pending()</code> and <code>BIO_wpending()</code> are macros which call <code>BIO_ctrl()</code>.</p> <p> </p> <hr /> <h1><a name="return_values">RETURN VALUES</a></h1> <p><code>BIO_reset()</code> normally returns 1 for success and 0 or -1 for failure. File BIOs are an exception, they return 0 for success and -1 for failure.</p> <p><code>BIO_seek()</code> and <code>BIO_tell()</code> both return the current file position on success and -1 for failure, except file BIOs which for <code>BIO_seek()</code> always return 0 for success and -1 for failure.</p> <p><code>BIO_flush()</code> returns 1 for success and 0 or -1 for failure.</p> <p><code>BIO_eof()</code> returns 1 if EOF has been reached 0 otherwise.</p> <p><code>BIO_set_close()</code> always returns 1.</p> <p><code>BIO_get_close()</code> returns the close flag value: BIO_CLOSE or BIO_NOCLOSE.</p> <p><code>BIO_pending()</code>, <code>BIO_ctrl_pending()</code>, <code>BIO_wpending()</code> and <code>BIO_ctrl_wpending()</code> return the amount of pending data.</p> <p> </p> <hr /> <h1><a name="notes">NOTES</a></h1> <p><code>BIO_flush()</code>, because it can write data may return 0 or -1 indicating that the call should be retried later in a similar manner to <code>BIO_write_ex()</code>. The <code>BIO_should_retry()</code> call should be used and appropriate action taken is the call fails.</p> <p>The return values of <code>BIO_pending()</code> and <code>BIO_wpending()</code> may not reliably determine the amount of pending data in all cases. For example in the case of a file BIO some data may be available in the FILE structures internal buffers but it is not possible to determine this in a portably way. For other types of BIO they may not be supported.</p> <p>Filter BIOs if they do not internally handle a particular <code>BIO_ctrl()</code> operation usually pass the operation to the next BIO in the chain. This often means there is no need to locate the required BIO for a particular operation, it can be called on a chain and it will be automatically passed to the relevant BIO. However, this can cause unexpected results: for example no current filter BIOs implement <code>BIO_seek()</code>, but this may still succeed if the chain ends in a FILE or file descriptor BIO.</p> <p>Source/sink BIOs return an 0 if they do not recognize the <code>BIO_ctrl()</code> operation.</p> <p> </p> <hr /> <h1><a name="bugs">BUGS</a></h1> <p>Some of the return values are ambiguous and care should be taken. In particular a return value of 0 can be returned if an operation is not supported, if an error occurred, if EOF has not been reached and in the case of <code>BIO_seek()</code> on a file BIO for a successful operation.</p> <p> </p> <hr /> <h1><a name="copyright">COPYRIGHT</a></h1> <p>Copyright 2000-2022 The OpenSSL Project Authors. All Rights Reserved.</p> <p>Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at <a href="https://www.openssl.org/source/license.html">https://www.openssl.org/source/license.html</a>.</p> </body> </html>