Branch: Tag:

2003-04-01

2003-04-01 18:15:58 by Martin Nilsson <mani@lysator.liu.se>

Autodoc fix

Rev: lib/7.2/modules/__default.pmod:1.16
Rev: src/builtin.cmod:1.128
Rev: src/builtin_functions.c:1.481
Rev: src/mapping.c:1.165
Rev: src/modules/Math/module.pmod.in:1.16
Rev: src/modules/_Crypto/cast.c:1.15
Rev: src/modules/_Crypto/crypto.c:1.55
Rev: src/modules/_math/math.c:1.59
Rev: src/modules/files/efuns.c:1.125
Rev: src/modules/files/file.c:1.265
Rev: src/multiset.c:1.70
Rev: src/operators.c:1.173
Rev: src/program.c:1.496
Rev: src/security.c:1.41

11:   <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>`&lt;&lt;</b></span> + </dt> + <dd><p><code><code class='object unresolved'>Stdio.File</code> res = <code class='class'>Stdio.File()</code>&#32;&lt;&lt;&#32;<code class='class'>data</code></code><br> + <code><code class='object unresolved'>Stdio.File</code> res = <code class='class'>Stdio.File()</code>&#32;&lt;&lt;&#32;<code class='class'>data</code></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Write some data to a file.</p> + <p> If <code>data</code> is not a string, it will be casted to string, and then +  written to the file.</p> + </dd> + <dt class='head--doc'>Note</dt> + <dd class='body--doc'><p>Throws an error if not all data could be written.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>write()</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>assign</b></span>   </dt>   <dd><p><code><code class='datatype'>int</code> <b><span class='method'>assign</span>(</b><code class='object unresolved'>File</code>|<code class='object unresolved'>Fd</code> <code class='argument'>o</code><b>)</b></code></p></dd>
93:   <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>close</b></span> + </dt> + <dd><p><code><code class='datatype'>int</code> <b><span class='method'>close</span>(</b><b>)</b></code><br> + <code><code class='datatype'>int</code> <b><span class='method'>close</span>(</b><code class='datatype'>string</code> <code class='argument'>direction</code><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Close a file or stream.</p> + <p> If direction is not specified, both the read and the write direction +  will be closed. Otherwise only the directions specified will be closed.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>open()</code>, <code>open_socket()</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>connect</b></span>   </dt> -  + <dd><p><code><code class='datatype'>bool</code> <b><span class='method'>connect</span>(</b><code class='datatype'>string</code> <code class='argument'>dest_addr</code>, <code class='datatype'>int</code> <code class='argument'>dest_port</code><b>)</b></code><br> + <code><code class='datatype'>bool</code> <b><span class='method'>connect</span>(</b><code class='datatype'>string</code> <code class='argument'>dest_addr</code>, <code class='datatype'>int</code> <code class='argument'>dest_port</code>, <code class='datatype'>string</code> <code class='argument'>src_addr</code>, <code class='datatype'>int</code> <code class='argument'>src_port</code><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Open a TCP/IP connection to the specified destination.</p> + <p> In nonblocking mode, success is indicated with the write-callback, +  and failure with the close-callback or the read_oob-callback.</p> + </dd> + <dt class='head--doc'>Returns</dt> + <dd class='body--doc'><p>Returns <tt>1</tt> on success, and <tt>0</tt> on failure.</p> + </dd> + <dt class='head--doc'>Note</dt> + <dd class='body--doc'><p>In nonblocking mode <tt>0</tt> (zero) may be returned and <code>errno()</code> set to +  <tt>EWOULDBLOCK</tt> or <tt>WSAEWOULDBLOCK</tt>. This should not be regarded +  as a connection failure.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>connect</b></span> + </dt>   <dd><p><code><code class='datatype'>int</code> <b><span class='method'>connect</span>(</b><code class='datatype'>string</code> <code class='argument'>host</code>, <code class='datatype'>int</code> <code class='argument'>port</code>, <code class='datatype'>void</code>|<code class='datatype'>string</code> <code class='argument'>client</code>, <code class='datatype'>void</code>|<code class='datatype'>int</code> <code class='argument'>client_port</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>
123:   <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>connect_unix</b></span>   </dt> + <dd><p><code><code class='datatype'>bool</code> <b><span class='method'>connect_unix</span>(</b><code class='datatype'>string</code> <code class='argument'>filename</code><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Open a UNIX domain socket connection to the specified destination.</p> + <p> In nonblocking mode, success is indicated with the write-callback, +  and failure with the close-callback or the read_oob-callback.</p> + </dd> + <dt class='head--doc'>Returns</dt> + <dd class='body--doc'><p>Returns <tt>1</tt> on success, and <tt>0</tt> on failure.</p> + </dd> + <dt class='head--doc'>Note</dt> + <dd class='body--doc'><p>In nonblocking mode <tt>0</tt> (zero) may be returned and <code>errno()</code> set to +  <tt>EWOULDBLOCK</tt> or <tt>WSAEWOULDBLOCK</tt>. This should not be regarded +  as a connection failure.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>connect_unix</b></span> + </dt>   <dd><p><code><code class='datatype'>int</code> <b><span class='method'>connect_unix</span>(</b><code class='datatype'>string</code> <code class='argument'>path</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>
178:   <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>create</b></span> + </dt> + <dd><p><code><span class='object'>Stdio.File</span> <span class='class'>Stdio.File</span><b>(</b><code class='datatype'>string</code> <code class='argument'>filename</code><b>)</b></code><br> + <code><span class='object'>Stdio.File</span> <span class='class'>Stdio.File</span><b>(</b><code class='datatype'>string</code> <code class='argument'>filename</code>, <code class='datatype'>string</code> <code class='argument'>mode</code><b>)</b></code><br> + <code><span class='object'>Stdio.File</span> <span class='class'>Stdio.File</span><b>(</b><code class='datatype'>string</code> <code class='argument'>filename</code>, <code class='datatype'>string</code> <code class='argument'>mode</code>, <code class='object unresolved'>in</code> <code class='argument'>access</code><b>)</b></code><br> + <code><span class='object'>Stdio.File</span> <span class='class'>Stdio.File</span><b>(</b><code class='datatype'>int</code> <code class='argument'>fd</code><b>)</b></code><br> + <code><span class='object'>Stdio.File</span> <span class='class'>Stdio.File</span><b>(</b><code class='datatype'>int</code> <code class='argument'>fd</code>, <code class='datatype'>string</code> <code class='argument'>mode</code><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>See <code>open()</code>.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>open()</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>dup</b></span>   </dt>   <dd><p><code><code class='object unresolved'>File</code> <b><span class='method'>dup</span>(</b><b>)</b></code></p></dd>
197:   <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>dup</b></span> + </dt> + <dd><p><code><code class='object unresolved'>Stdio.File</code> <b><span class='method'>dup</span>(</b><b>)</b></code></p></dd> + </dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>dup2</b></span> + </dt> + <dd><p><code><code class='datatype'>int</code> <b><span class='method'>dup2</span>(</b><code class='object unresolved'>Stdio.File</code> <code class='argument'>to</code><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Duplicate a file over another.</p> + <p> This function works similarly to <code>assign()</code>, but instead of making +  the argument a reference to the same file, it creates a new file +  with the same properties and places it in the argument.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>assign()</code>, <code>dup()</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>errno</b></span>   </dt>   <dd><p><code><code class='datatype'>int</code> <b><span class='method'>errno</span>(</b><b>)</b></code></p></dd>
209:      <hr />   <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>errno</b></span> + </dt> + <dd><p><code><code class='datatype'>int</code> <b><span class='method'>errno</span>(</b><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Return the errno for the latest failed file operation.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>grantpt</b></span> + </dt> + <dd><p><code><code class='datatype'>string</code> <b><span class='method'>grantpt</span>(</b><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>If this file has been created by opening /dev/ptmx, return the +  filename of the associated pts-file. This function should only be +  called once.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Inherit</span>   <span class='homogen--name'><b>Fd_ref</b></span>   </dt>
233:   <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>lock</b></span> + </dt> + <dd><p><code><code class='object unresolved'>Stdio.FileLockKey</code> <b><span class='method'>lock</span>(</b><b>)</b></code><br> + <code><code class='object unresolved'>Stdio.FileLockKey</code> <b><span class='method'>lock</span>(</b><code class='datatype'>bool</code> <code class='argument'>is_recursive</code><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Makes an exclusive file lock on this file.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>trylock()</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>mode</b></span> + </dt> + <dd><p><code><code class='datatype'>int</code> <b><span class='method'>mode</span>(</b><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Returns the open mode for the file.</p> + <table class='box'><tr><td><code><code class='key'>0x1000</code></code></td><td><p>FILE_READ</p> + </td></tr> + <tr><td><code><code class='key'>0x2000</code></code></td><td><p>FILE_WRITE</p> + </td></tr> + <tr><td><code><code class='key'>0x4000</code></code></td><td><p>FILE_APPEND</p> + </td></tr> + <tr><td><code><code class='key'>0x8000</code></code></td><td><p>FILE_CREATE</p> + </td></tr> + <tr><td><code><code class='key'>0x0100</code></code></td><td><p>FILE_TRUNC</p> + </td></tr> + <tr><td><code><code class='key'>0x0200</code></code></td><td><p>FILE_EXCLUSIVE</p> + </td></tr> + <tr><td><code><code class='key'>0x0400</code></code></td><td><p>FILE_NONBLOCKING</p> + </td></tr> + <tr><td><code><code class='key'>0x0800</code></code></td><td><p>FILE_SET_CLOSE_ON_EXEC</p> + </td></tr> + <tr><td><code><code class='key'>0x0001</code></code></td><td><p>FILE_HAS_INTERNAL_REF</p> + </td></tr> + <tr><td><code><code class='key'>0x0002</code></code></td><td><p>FILE_NO_CLOSE_ON_DESTRUCT</p> + </td></tr> + <tr><td><code><code class='key'>0x0004</code></code></td><td><p>FILE_LOCK_FD</p> + </td></tr> + <tr><td><code><code class='key'>0x0010</code></code></td><td><p>FILE_NOT_OPENED</p> + </td></tr> + </table> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>open()</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>open</b></span>   </dt>   <dd><p><code><code class='datatype'>int</code> <b><span class='method'>open</span>(</b><code class='datatype'>string</code> <code class='argument'>filename</code>, <code class='datatype'>string</code> <code class='argument'>mode</code><b>)</b></code><br>
269:   <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>open</b></span> + </dt> + <dd><p><code><code class='datatype'>int</code> <b><span class='method'>open</span>(</b><code class='datatype'>string</code> <code class='argument'>filename</code>, <code class='datatype'>string</code> <code class='argument'>mode</code><b>)</b></code><br> + <code><code class='datatype'>int</code> <b><span class='method'>open</span>(</b><code class='datatype'>string</code> <code class='argument'>filename</code>, <code class='datatype'>string</code> <code class='argument'>mode</code>, <code class='datatype'>int</code> <code class='argument'>access</code><b>)</b></code><br> + <code><code class='datatype'>int</code> <b><span class='method'>open</span>(</b><code class='datatype'>int</code> <code class='argument'>fd</code>, <code class='datatype'>string</code> <code class='argument'>mode</code><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Open a file or fd.</p> + <p> If <code>access</code> is not specified, it will default to <tt>00666</tt>.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>close()</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>open_socket</b></span>   </dt> -  + <dd><p><code><code class='datatype'>bool</code> <b><span class='method'>open_socket</span>(</b><code class='datatype'>int</code>|<code class='datatype'>void</code> <code class='argument'>port</code>, <code class='datatype'>string</code>|<code class='datatype'>void</code> <code class='argument'>addr</code><b>)</b></code></p></dd> + </dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>open_socket</b></span> + </dt>   <dd><p><code><code class='datatype'>int</code> <b><span class='method'>open_socket</span>(</b><code class='datatype'>int</code>|<code class='datatype'>void</code> <code class='argument'>port</code>, <code class='datatype'>string</code>|<code class='datatype'>void</code> <code class='argument'>address</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>
293:   <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>peek</b></span> + </dt> + <dd><p><code><code class='datatype'>int(-1..1)</code> <b><span class='method'>peek</span>(</b><b>)</b></code><br> + <code><code class='datatype'>int(-1..1)</code> <b><span class='method'>peek</span>(</b><code class='datatype'>int</code>|<code class='datatype'>float</code> <code class='argument'>timeout</code><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Check if there is data available to read, +  or wait some time for available data to read.</p> + <p> Returns <tt>1</tt> if there is data available to read, +  <tt>0</tt> (zero) if there is no data available, and +  <tt>-1</tt> if something went wrong.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>errno()</code>, <code>read()</code></p> + </dd> + <dt class='head--doc'>Note</dt> + <dd class='body--doc'><p>The function may be interrupted prematurely +  of the timeout (due to signals); +  check the timing manually if this is imporant.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>pipe</b></span>   </dt> -  + <dd><p><code><code class='object unresolved'>Stdio.File</code> <b><span class='method'>pipe</span>(</b><b>)</b></code><br> + <code><code class='object unresolved'>Stdio.File</code> <b><span class='method'>pipe</span>(</b><code class='datatype'>int</code> <code class='argument'>flags</code><b>)</b></code></p></dd> + </dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>pipe</b></span> + </dt>   <dd><p><code><code class='object unresolved'>File</code> <b><span class='method'>pipe</span>(</b><code class='datatype'>void</code>|<code class='datatype'>int</code> <code class='argument'>how</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>
314:   <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>proxy</b></span> + </dt> + <dd><p><code><code class='datatype'>void</code> <b><span class='method'>proxy</span>(</b><code class='object unresolved'>Stdio.File</code> <code class='argument'>from</code><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Starts a thread that asynchronously copies data from <code>from</code> +  to this file.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>Stdio.sendfile()</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>query_address</b></span> + </dt> + <dd><p><code><code class='datatype'>string</code> <b><span class='method'>query_address</span>(</b><b>)</b></code><br> + <code><code class='datatype'>string</code> <b><span class='method'>query_address</span>(</b><code class='datatype'>bool</code> <code class='argument'>local</code><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Get address and port of a socket end-point.</p> + <p> This function returns the remote or local address of a socket on the +  form "x.x.x.x port".</p> + <p> If the argument <code>local</code> is not specified, or is <tt>0</tt> (zero), +  the remote address will be returned. Otherwise, if <code>local</code> is +  <tt>1</tt>, the local address will be returned.</p> + <p> If the file is not a socket, not connected, or some other error +  occurrs, <tt>0</tt> (zero) will be returned.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>connect()</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>query_close_callback</b></span>   </dt>   <dd><p><code><code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>void</code>) <b><span class='method'>query_close_callback</span>(</b><b>)</b></code></p></dd>
330:   <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>query_fd</b></span> + </dt> + <dd><p><code><code class='datatype'>int</code> <b><span class='method'>query_fd</span>(</b><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Returns the file descriptor number associated with this object.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>query_id</b></span>   </dt>   <dd><p><code><code class='datatype'>mixed</code> <b><span class='method'>query_id</span>(</b><b>)</b></code></p></dd>
399:   <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>read</b></span> + </dt> + <dd><p><code><code class='datatype'>string</code> <b><span class='method'>read</span>(</b><b>)</b></code><br> + <code><code class='datatype'>string</code> <b><span class='method'>read</span>(</b><code class='datatype'>int</code> <code class='argument'>len</code><b>)</b></code><br> + <code><code class='datatype'>string</code> <b><span class='method'>read</span>(</b><code class='datatype'>int</code> <code class='argument'>len</code>, <code class='datatype'>bool</code> <code class='argument'>not_all</code><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Read data from a file or a string.</p> + <p> Attempts to read <code>len</code> bytes from the file, and return it as a +  string. If something goes wrong, zero is returned.</p> + <p> If a one is given as the second argument to <code>read()</code>, it will not try +  its best to read as many bytes as you have asked for, but will +  merely try to read as many bytes as the system read function will +  return. This mainly useful with stream devices which can return +  exactly one row or packet at a time.</p> + <p> If no arguments are given, <code>read()</code> will read to the +  end of the file/stream.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>read_oob()</code>, <code>write()</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>read_function</b></span>   </dt>   <dd><p><code><code class='datatype'>function</code>(:<code class='datatype'>string</code>) <b><span class='method'>read_function</span>(</b><code class='datatype'>int</code> <code class='argument'>nbytes</code><b>)</b></code></p></dd>
414:   <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>read_oob</b></span> + </dt> + <dd><p><code><code class='datatype'>string</code> <b><span class='method'>read_oob</span>(</b><b>)</b></code><br> + <code><code class='datatype'>string</code> <b><span class='method'>read_oob</span>(</b><code class='datatype'>int</code> <code class='argument'>len</code><b>)</b></code><br> + <code><code class='datatype'>string</code> <b><span class='method'>read_oob</span>(</b><code class='datatype'>int</code> <code class='argument'>len</code>, <code class='datatype'>bool</code> <code class='argument'>not_all</code><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Read out-of-band data from a stream.</p> + <p> Attempts to read <code>len</code> bytes of out-of-band data from the stream, +  and returns it as a string. If something goes wrong, zero is returned.</p> + <p> If a one is given as the second argument to <code>read_oob()</code>, only +  as many bytes of out-of-band data as are currently available will be +  returned.</p> + <p> If no arguments are given, <code>read_oob()</code> will read to the end of +  the stream.</p> + </dd> + <dt class='head--doc'>Note</dt> + <dd class='body--doc'><p>This function is only available if the option <tt>'--without-oob'</tt> +  was not specified when the Pike runtime was compiled.</p> + <p> It is not guaranteed that all out-of-band data sent from the other end +  will be received. Most streams only allow for a single byte of +  out-of-band data at a time.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>read()</code>, <code>write_oob()</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>seek</b></span> + </dt> + <dd><p><code><code class='datatype'>int</code> <b><span class='method'>seek</span>(</b><code class='datatype'>int</code> <code class='argument'>pos</code><b>)</b></code><br> + <code><code class='datatype'>int</code> <b><span class='method'>seek</span>(</b><code class='datatype'>int</code> <code class='argument'>unit</code>, <code class='datatype'>int</code> <code class='argument'>mult</code><b>)</b></code><br> + <code><code class='datatype'>int</code> <b><span class='method'>seek</span>(</b><code class='datatype'>int</code> <code class='argument'>unit</code>, <code class='datatype'>int</code> <code class='argument'>mult</code>, <code class='datatype'>int</code> <code class='argument'>add</code><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Seek to a specified offset in a file.</p> + <p> If <code>mult</code> or <code>add</code> are specified, <code>pos</code> will be claculated as +  <code class='expr'><code>pos</code>&nbsp;=&nbsp;<code>unit</code>*<code>mult</code>&nbsp;+&nbsp;<code>add</code></code>.</p> + <p> If <code>pos</code> is negative it will be relative to the start of the file, +  otherwise it will be an absolute offset from the start of the file.</p> + </dd> + <dt class='head--doc'>Returns</dt> + <dd class='body--doc'><p>Returns the new offset, or <tt>-1</tt> on failure.</p> + </dd> + <dt class='head--doc'>Note</dt> + <dd class='body--doc'><p>The arguments <code>mult</code> and <code>add</code> are considered obsolete, and +  should not be used.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>tell()</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>set_blocking</b></span>   </dt>   <dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_blocking</span>(</b><b>)</b></code></p></dd>
430:   <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>set_blocking</b></span> + </dt> + <dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_blocking</span>(</b><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Sets this file to blocking operation.</p> + <p> This is the inverse operation of <code>set_nonblocking()</code>.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>set_nonblocking()</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>set_nonblocking_keep_callbacks</b></span><br>   <span class='homogen--type'>Method</span>   <span class='homogen--name'><b>set_blocking_keep_callbacks</b></span><br>
446:   <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>set_buffer</b></span> + </dt> + <dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_buffer</span>(</b><code class='datatype'>int</code> <code class='argument'>bufsize</code>, <code class='datatype'>string</code> <code class='argument'>mode</code><b>)</b></code><br> + <code><code class='datatype'>void</code> <b><span class='method'>set_buffer</span>(</b><code class='datatype'>int</code> <code class='argument'>bufsize</code><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Set internal socket buffer.</p> + <p> This function sets the internal buffer size of a socket or stream.</p> + <p> The second argument allows you to set the read or write buffer by +  specifying <tt>"r"</tt> or <tt>"w"</tt>.</p> + </dd> + <dt class='head--doc'>Note</dt> + <dd class='body--doc'><p>It is not guaranteed that this function actually does anything, +  but it certainly helps to increase data transfer speed when it does.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>open_socket()</code>, <code>accept()</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>set_close_callback</b></span>   </dt>   <dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_close_callback</span>(</b><code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>void</code>) <code class='argument'>close_cb</code><b>)</b></code></p></dd>
469:   <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>set_close_on_exec</b></span> + </dt> + <dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_close_on_exec</span>(</b><code class='datatype'>bool</code> <code class='argument'>yes_no</code><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Marks the file as to be closed in spawned processes.</p> + <p> This function determines whether this file will be closed when +  calling exec().</p> + <p> Default is that the file WILL be closed on exec except for +  stdin, stdout and stderr.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>Process.create_process()</code>, <code>exec()</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>set_id</b></span>   </dt>   <dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_id</span>(</b><code class='datatype'>mixed</code> <code class='argument'>id</code><b>)</b></code></p></dd>
488:   <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>set_keepalive</b></span> + </dt> + <dd><p><code><code class='datatype'>bool</code> <b><span class='method'>set_keepalive</span>(</b><code class='datatype'>bool</code> <code class='argument'>on_off</code><b>)</b></code></p></dd> + </dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>set_nonblocking</b></span>   </dt> -  + <dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_nonblocking</span>(</b><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Sets this file to nonblocking operation.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>set_blocking()</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>set_nonblocking</b></span> + </dt>   <dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_nonblocking</span>(</b><code class='datatype'>function</code>(<code class='datatype'>mixed</code>, <code class='datatype'>string</code>:<code class='datatype'>void</code>) <code class='argument'>read_callback</code>, <code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>void</code>) <code class='argument'>write_callback</code>, <code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>void</code>) <code class='argument'>close_callback</code><b>)</b></code><br>   <code><code class='datatype'>void</code> <b><span class='method'>set_nonblocking</span>(</b><code class='datatype'>function</code>(<code class='datatype'>mixed</code>, <code class='datatype'>string</code>:<code class='datatype'>void</code>) <code class='argument'>read_callback</code>, <code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>void</code>) <code class='argument'>write_callback</code>, <code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>void</code>) <code class='argument'>close_callback</code>, <code class='datatype'>function</code>(<code class='datatype'>mixed</code>, <code class='datatype'>string</code>:<code class='datatype'>void</code>) <code class='argument'>read_oob_callback</code>, <code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>void</code>) <code class='argument'>write_oob_callback</code><b>)</b></code><br>   <code><code class='datatype'>void</code> <b><span class='method'>set_nonblocking</span>(</b><b>)</b></code></p></dd>
594:   <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>stat</b></span> + </dt> + <dd><p><code><code class='object unresolved'>Stat</code> <b><span class='method'>stat</span>(</b><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Get status for an open file.</p> + <p> This function returns the same information as the function <code>file_stat()</code>, +  but for the file it is called in. If file is not an open file, <tt>0</tt> +  (zero) will be returned. Zero is also returned if file is a pipe or +  socket.</p> + </dd> + <dt class='head--doc'>Returns</dt> + <dd class='body--doc'><p>See <code>file_stat()</code> for a description of the return value.</p> + </dd> + <dt class='head--doc'>Note</dt> + <dd class='body--doc'><p>Prior to Pike 7.1 this function returned an array(int).</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>file_stat()</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>sync</b></span> + </dt> + <dd><p><code><code class='datatype'>bool</code> <b><span class='method'>sync</span>(</b><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Flush buffers to disk.</p> + </dd> + <dt class='head--doc'>Returns</dt> + <dd class='body--doc'><p>Returns <tt>0</tt> (zero) and sets errno on failure.</p> + <p> Returns <tt>1</tt> on success.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>tcgetattr</b></span><br>   <span class='homogen--type'>Method</span>   <span class='homogen--name'><b>tcsetattr</b></span><br>
658:   <dd class='body--doc'><p>Terminal rows and columns setting by <code>tcsetattr()</code> is not    currently supported.</p>   </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>tell</b></span> + </dt> + <dd><p><code><code class='datatype'>int</code> <b><span class='method'>tell</span>(</b><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Returns the current offset in the file.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>seek()</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>truncate</b></span> + </dt> + <dd><p><code><code class='datatype'>bool</code> <b><span class='method'>truncate</span>(</b><code class='datatype'>int</code> <code class='argument'>length</code><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Truncate a file.</p> + <p> Truncates the file to the specified length <code>length</code>.</p> + </dd> + <dt class='head--doc'>Returns</dt> + <dd class='body--doc'><p>Returns <tt>1</tt> on success, and <tt>0</tt> (zero) on failure.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>open()</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>trylock</b></span> + </dt> + <dd><p><code><code class='object unresolved'>Stdio.FileLockKey</code> <b><span class='method'>trylock</span>(</b><b>)</b></code><br> + <code><code class='object unresolved'>Stdio.FileLockKey</code> <b><span class='method'>trylock</span>(</b><code class='datatype'>bool</code> <code class='argument'>is_recursive</code><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Attempts to place a file lock on this file.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>lock()</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>write</b></span> + </dt> + <dd><p><code><code class='datatype'>int</code> <b><span class='method'>write</span>(</b><code class='datatype'>string</code> <code class='argument'>data</code><b>)</b></code><br> + <code><code class='datatype'>int</code> <b><span class='method'>write</span>(</b><code class='datatype'>string</code> <code class='argument'>format</code>, <code class='datatype'>mixed</code> ... <code class='argument'>extras</code><b>)</b></code><br> + <code><code class='datatype'>int</code> <b><span class='method'>write</span>(</b><code class='datatype'>array</code>(<code class='datatype'>string</code>) <code class='argument'>data</code><b>)</b></code><br> + <code><code class='datatype'>int</code> <b><span class='method'>write</span>(</b><code class='datatype'>array</code>(<code class='datatype'>string</code>) <code class='argument'>format</code>, <code class='datatype'>mixed</code> ... <code class='argument'>extras</code><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Write data to a file or a stream.</p> + <p> Writes <code>data</code> and returns the number of bytes that were +  actually written.</p> + <p> If more than one argument is given, <code>sprintf()</code> will be +  used to format them.</p> + <p> If <code>data</code> is an array, it will be concatenated, and then written.</p> + <p> 0 is returned in nonblocking mode if it was not possible to write +  anything without blocking.</p> + <p> -1 is returned if something went wrong and no bytes were written.</p> + </dd> + <dt class='head--doc'>Note</dt> + <dd class='body--doc'><p>Writing of wide strings is not supported.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>read()</code>, <code>write_oob()</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>write_oob</b></span> + </dt> + <dd><p><code><code class='datatype'>int</code> <b><span class='method'>write_oob</span>(</b><code class='datatype'>string</code> <code class='argument'>data</code><b>)</b></code><br> + <code><code class='datatype'>int</code> <b><span class='method'>write_oob</span>(</b><code class='datatype'>string</code> <code class='argument'>format</code>, <code class='datatype'>mixed</code> ... <code class='argument'>extras</code><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Write out-of-band data to a stream.</p> + <p> Writes out-of-band data to a stream and returns how many bytes that were +  actually written.</p> + <p> If more than one argument is given, <code>sprintf()</code> will be +  used to format them.</p> + <p> -1 is returned if something went wrong and no bytes were written.</p> + </dd> + <dt class='head--doc'>Note</dt> + <dd class='body--doc'><p>This function is only available if the option <tt>'--without-oob'</tt> +  was not specified when the Pike runtime was compiled.</p> + <p> It is not guaranteed that all out-of-band data sent from the other end +  will be received. Most streams only allow for a single byte of +  out-of-band data at a time. Some streams will send the rest of the data +  as ordinary data.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>read_oob()</code>, <code>write()</code></p> + </dd></dl>   </dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>Stdio.FILE</b></h2>   </dt><dd><dl class='group--doc'>   <dt class='head--doc'>Description</dt>
1825:      <hr />   <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Constant</span> + <span class='homogen--name'><b>DN_ACCESS</b></span> + </dt> + <dd><p><code><code class='datatype'>constant</code> Stdio.<code class='constant'>DN_ACCESS</code></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Used in <code>File.notify()</code> to get a callback when files +  within a directory are accessed.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Constant</span> + <span class='homogen--name'><b>DN_ATTRIB</b></span> + </dt> + <dd><p><code><code class='datatype'>constant</code> Stdio.<code class='constant'>DN_ATTRIB</code></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Used in <code>File.notify()</code> to get a callback when attributes +  of files within a directory are changed.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Constant</span> + <span class='homogen--name'><b>DN_CREATE</b></span> + </dt> + <dd><p><code><code class='datatype'>constant</code> Stdio.<code class='constant'>DN_CREATE</code></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Used in <code>File.notify()</code> to get a callback when new +  files are created within a directory.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Constant</span> + <span class='homogen--name'><b>DN_DELETE</b></span> + </dt> + <dd><p><code><code class='datatype'>constant</code> Stdio.<code class='constant'>DN_DELETE</code></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Used in <code>File.notify()</code> to get a callback when files +  are deleted within a directory.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Constant</span> + <span class='homogen--name'><b>DN_MODIFY</b></span> + </dt> + <dd><p><code><code class='datatype'>constant</code> Stdio.<code class='constant'>DN_MODIFY</code></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Used in <code>File.notify()</code> to get a callback when files +  within a directory are modified.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Constant</span> + <span class='homogen--name'><b>DN_MULTISHOT</b></span> + </dt> + <dd><p><code><code class='datatype'>constant</code> Stdio.<code class='constant'>DN_MULTISHOT</code></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Used in <code>File.notify()</code>. If DN_MULTISHOT is used, signals will +  be sent for all notifications the program has registred for. Otherwise +  only the first event the program is listening for will be received and +  then the program must reregister for the events to receive futher events.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Constant</span> + <span class='homogen--name'><b>DN_RENAME</b></span> + </dt> + <dd><p><code><code class='datatype'>constant</code> Stdio.<code class='constant'>DN_RENAME</code></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Used in <code>File.notify()</code> to get a callback when files +  within a directory are renamed.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Constant</span> + <span class='homogen--name'><b>IPPROTO</b></span> + </dt> + <dd><p><code><code class='datatype'>constant</code> Stdio.<code class='constant'>IPPROTO</code></code></p></dd> + <dt class='head--fixme'>FIXME</dt> + <dd class='body--fixme'><p>Document this constant.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Constant</span> + <span class='homogen--name'><b>PROP_BIDIRECTIONAL</b></span> + </dt> + <dd><p><code><code class='datatype'>constant</code> Stdio.<code class='constant'>PROP_BIDIRECTIONAL</code></code></p></dd> + <dt class='head--fixme'>FIXME</dt> + <dd class='body--fixme'><p>Document this constant.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Constant</span> + <span class='homogen--name'><b>PROP_BUFFERED</b></span> + </dt> + <dd><p><code><code class='datatype'>constant</code> Stdio.<code class='constant'>PROP_BUFFERED</code></code></p></dd> + <dt class='head--fixme'>FIXME</dt> + <dd class='body--fixme'><p>Document this constant.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Constant</span> + <span class='homogen--name'><b>PROP_IPC</b></span> + </dt> + <dd><p><code><code class='datatype'>constant</code> Stdio.<code class='constant'>PROP_IPC</code></code></p></dd> + <dt class='head--fixme'>FIXME</dt> + <dd class='body--fixme'><p>Document this constant.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Constant</span> + <span class='homogen--name'><b>PROP_NONBLOCK</b></span> + </dt> + <dd><p><code><code class='datatype'>constant</code> Stdio.<code class='constant'>PROP_NONBLOCK</code></code></p></dd> + <dt class='head--fixme'>FIXME</dt> + <dd class='body--fixme'><p>Document this constant.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Constant</span> + <span class='homogen--name'><b>PROP_SHUTDOWN</b></span> + </dt> + <dd><p><code><code class='datatype'>constant</code> Stdio.<code class='constant'>PROP_SHUTDOWN</code></code></p></dd> + <dt class='head--fixme'>FIXME</dt> + <dd class='body--fixme'><p>Document this constant.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Constant</span> + <span class='homogen--name'><b>__HAVE_OOB__</b></span> + </dt> + <dd><p><code><code class='datatype'>constant</code> Stdio.<code class='constant'>__HAVE_OOB__</code></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Exists and has the value 1 if OOB operations are +  available.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Constant</span> + <span class='homogen--name'><b>__OOB__</b></span> + </dt> + <dd><p><code><code class='datatype'>constant</code> Stdio.<code class='constant'>__OOB__</code></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Implementation level of nonblocking I/O OOB support.</p> + <table class='box'><tr><td><code><code class='key'>0</code></code></td><td><p>Nonblocking OOB support is not supported.</p> + </td></tr> + <tr><td><code><code class='key'>1</code></code></td><td><p>Nonblocking OOB works a little.</p> + </td></tr> + <tr><td><code><code class='key'>2</code></code></td><td><p>Nonblocking OOB almost works.</p> + </td></tr> + <tr><td><code><code class='key'>3</code></code></td><td><p>Nonblocking OOB works as intended.</p> + </td></tr> + <tr><td><code><code class='key'>-1</code></code></td><td><p>Unknown level of nonblocking OOB support.</p> + </td></tr> + </table><p>This constant only exists when OOB operations are +  available, i.e. when <code>__HAVE_OOB__</code> is 1.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> -  + <span class='homogen--name'><b>_sprintf</b></span> + </dt> + <dd><p><code><code class='datatype'>string</code> <b><span class='method'>_sprintf</span>(</b><code class='datatype'>int</code> <code class='argument'>type</code>, <code class='datatype'>void</code>|<code class='datatype'>mapping</code> <code class='argument'>flags</code><b>)</b></code></p></dd> + </dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>append_file</b></span>   </dt>   <dd><p><code><code class='datatype'>int</code> <b><span class='method'>append_file</span>(</b><code class='datatype'>string</code> <code class='argument'>filename</code>, <code class='datatype'>string</code> <code class='argument'>str</code>, <code class='datatype'>int</code>|<code class='datatype'>void</code> <code class='argument'>access</code><b>)</b></code></p></dd>
1960:      <hr />   <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>get_all_active_fd</b></span> + </dt> + <dd><p><code><code class='datatype'>array</code>(<code class='datatype'>int</code>) <b><span class='method'>get_all_active_fd</span>(</b><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Returns the id of all the active file descriptors.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Inherit</span>   <span class='homogen--name'><b>files</b></span>   </dt>
2045:   <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>notify</b></span> + </dt> + <dd><p><code><code class='datatype'>void</code> <b><span class='method'>notify</span>(</b><code class='datatype'>void</code>|<code class='datatype'>int</code> <code class='argument'>notification</code>, <code class='datatype'>function</code>(<code class='datatype'>void</code>:<code class='datatype'>void</code>) <code class='argument'>callback</code><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Receive notification when change occur within the fd. +  To use, create a Stdio.File object of a directory like +  Stdio.File(".") and then call notify() with the appropriate +  parameters.</p> + </dd> + <dt class='head--doc'>Note</dt> + <dd class='body--doc'><p>When a program registers for some notification, only the first notification +  will be received unless DN_MULTISHOT is specified as part of the +  notification argument.</p> + </dd> + <dt class='head--doc'>Note</dt> + <dd class='body--doc'><p>At present, this function is Linux-specific and requires a kernel which +  supports the F_NOTIFY fcntl() call.</p> + </dd> + <dt class='head--doc'><span id='p-notification'></span>Parameter <code class='parameter'>notification</code></dt> + <dd></dd><dd class='body--doc'><p>What to notify the callback of. See the Stdio.DN_* constants for more +  information about possible notifications.</p> + </dd> + <dt class='head--doc'><span id='p-callback'></span>Parameter <code class='parameter'>callback</code></dt> + <dd></dd><dd class='body--doc'><p>Function which should be called when notification is received. The +  function gets the signal used to indicate the notification as its +  argument and shouldn't return anyting.</p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>perror</b></span>   </dt>   <dd><p><code><code class='datatype'>void</code> <b><span class='method'>perror</span>(</b><code class='datatype'>string</code> <code class='argument'>s</code><b>)</b></code></p></dd>
2492:   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>Stdio.File()-&gt;write()</code></p>   </dd></dl> + </dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>Stdio.Fd</b></h2> + </dt><dd><dl class='group--doc'> + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Low level I/O operations. Use <code>File</code> instead.</p> + </dd></dl></dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>Stdio.Fd_ref</b></h2> + </dt><dd><dl class='group--doc'> + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Proxy class that contains stub functions +  that call the corresponding functions in +  <code>Fd</code>.</p> + <p> Used by <code>File</code>.</p> + </dd></dl> +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Variable</span> + <span class='homogen--name'><b>_fd</b></span> + </dt> + <dd><p><code><code class='object unresolved'>Fd</code> Stdio.Fd_ref.<b><span class='variable'>_fd</span></b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Object to which called functions are relayed.</p> + </dd></dl>   </dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>Stdio.NonblockingStream</b></h2>   </dt><dd><dl class='group--doc'>   <dt class='head--doc'>Description</dt>