9699552002-03-12Martin Nilsson <!doctype html><html><head><title>Pike Reference Manual</title> <meta charset='utf-8'></head>
c3fe742003-02-05Martin Nilsson <body><dl><dt><h1 class='header'>9. I/O</h1></dt><dd><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> <dd class='body--doc'><p>This is the basic I/O object, it provides socket communication as well as file access. It does not buffer reads and writes or provide line-by-line reading, that is done with <code>Stdio.FILE</code> object.</p> </dd></dl>
e4e3f32002-04-06Martin Nilsson 
5bfef52003-04-01Martin Nilsson <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>
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>assign</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <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>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>This function takes a clone of Stdio.File and assigns all variables of this file from it. It can be used together with <code>dup()</code> to move files around.</p>
e4e3f32002-04-06Martin Nilsson </dd> <dt class='head--doc'>See also</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p><code>dup()</code></p>
e4e3f32002-04-06Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>async_connect</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>int</code> <b><span class='method'>async_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'>function</code>(<code class='datatype'>int</code>, <code class='datatype'>mixed</code> ... :<code class='datatype'>void</code>) <code class='argument'>callback</code>, <code class='datatype'>mixed</code> ... <code class='argument'>args</code><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Open a TCP/IP connection asynchronously.</p> <p> This function is similar to <code>connect()</code>, but works asynchronously.</p> </dd> <dt class='head--doc'><span id='p-host'></span>Parameter <code class='parameter'>host</code></dt> <dd></dd><dd class='body--doc'><p>Hostname or IP to connect to.</p> </dd> <dt class='head--doc'><span id='p-port'></span>Parameter <code class='parameter'>port</code></dt> <dd></dd><dd class='body--doc'><p>Port number to connect to.</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 to be called on completion.
84ea4e2003-04-07Martin Nilsson  The first argument will be <code class='expr'>1</code> if a connection was successfully estabished, and <code class='expr'>0</code> (zero) on failure.
c3fe742003-02-05Martin Nilsson  The rest of the arguments to <code>callback</code> are passed verbatim from <code>args</code>.</p> </dd> <dt class='head--doc'><span id='p-args'></span>Parameter <code class='parameter'>args</code></dt> <dd></dd><dd class='body--doc'><p>Extra arguments to pass to <code>callback</code>.</p> </dd> <dt class='head--doc'>Returns</dt>
84ea4e2003-04-07Martin Nilsson <dd class='body--doc'><p>Returns <code class='expr'>0</code> on failure, and <code class='expr'>1</code> if <code>callback</code>
c3fe742003-02-05Martin Nilsson  will be used.</p> </dd> <dt class='head--doc'>Note</dt> <dd class='body--doc'><p>The socket may be opened with <code>open_socket()</code> ahead of the call to this function, but it is not required.</p> <p> For <code>callback</code> to be called, the backend must be active (ie
84ea4e2003-04-07Martin Nilsson  <code>main()</code> must have returned <code class='expr'>-1</code>).</p> <p> The socket will be in non-blocking state if <code class='expr'>1</code> has been
c3fe742003-02-05Martin Nilsson  returned, and any callbacks will be cleared.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>connect()</code>, <code>open_socket()</code>, <code>set_nonblocking()</code></p>
e4e3f32002-04-06Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>close</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <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>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Close the file. Optionally, specify "r", "w" or "rw" to close just the read, just the write or both read and write directions of the file respectively.</p> </dd> <dt class='head--doc'>Note</dt> <dd class='body--doc'><p>This function will not call the <tt>close_callback</tt>.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>open</code>, <code>open_socket</code></p>
e4e3f32002-04-06Martin Nilsson </dd></dl>
1f918f2002-05-26Martin Nilsson 
5bfef52003-04-01Martin Nilsson <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>
84ea4e2003-04-07Martin Nilsson <dd class='body--doc'><p>Returns <code class='expr'>1</code> on success, and <code class='expr'>0</code> on failure.</p>
5bfef52003-04-01Martin Nilsson </dd> <dt class='head--doc'>Note</dt>
84ea4e2003-04-07Martin Nilsson <dd class='body--doc'><p>In nonblocking mode <code class='expr'>0</code> (zero) may be returned and <code>errno()</code> set to <tt>EWOULDBLOCK</tt> or <tt>WSAEWOULDBLOCK</tt>. This should not be regarded
5bfef52003-04-01Martin Nilsson  as a connection failure.</p> </dd></dl>
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>connect</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <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>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>This function connects a socket previously created with <code>open_socket()</code> to a remote socket through TCP/IP. The <code>host</code> argument is the hostname or IP number of the remote machine. A local IP and port can be explicitly bound by specifying <code>client</code> and <code>client_port</code>.</p> </dd> <dt class='head--doc'>Returns</dt> <dd class='body--doc'><p>This function returns 1 for success, 0 otherwise.</p> </dd> <dt class='head--doc'>Note</dt>
84ea4e2003-04-07Martin Nilsson <dd class='body--doc'><p>In nonblocking mode <code class='expr'>0</code> (zero) may be returned and <code>errno()</code> set to <code class='expr'>EWOULDBLOCK</code> or <code class='expr'>WSAEWOULDBLOCK</code>. This should not be regarded as a connection failure. In nonblocking mode you need to wait for a write or close callback before you know if the connection failed or not.</p>
e4e3f32002-04-06Martin Nilsson </dd>
50af352002-07-15Martin Nilsson <dt class='head--doc'>See also</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p><code>query_address()</code>, <code>async_connect()</code>, <code>connect_unix()</code></p>
e4e3f32002-04-06Martin Nilsson </dd></dl>
5bfef52003-04-01Martin Nilsson <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'>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>
84ea4e2003-04-07Martin Nilsson <dd class='body--doc'><p>Returns <code class='expr'>1</code> on success, and <code class='expr'>0</code> on failure.</p>
5bfef52003-04-01Martin Nilsson </dd> <dt class='head--doc'>Note</dt>
84ea4e2003-04-07Martin Nilsson <dd class='body--doc'><p>In nonblocking mode <code class='expr'>0</code> (zero) may be returned and <code>errno()</code> set to <tt>EWOULDBLOCK</tt> or <tt>WSAEWOULDBLOCK</tt>. This should not be regarded
5bfef52003-04-01Martin Nilsson  as a connection failure.</p> </dd></dl>
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>connect_unix</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <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>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Open a UNIX domain socket connection to the specified destination.</p>
e4e3f32002-04-06Martin Nilsson </dd>
c3fe742003-02-05Martin Nilsson <dt class='head--doc'>Returns</dt>
84ea4e2003-04-07Martin Nilsson <dd class='body--doc'><p>Returns <code class='expr'>1</code> on success, and <code class='expr'>0</code> on failure.</p>
c3fe742003-02-05Martin Nilsson </dd> <dt class='head--doc'>Note</dt> <dd class='body--doc'><p>Nonblocking mode is not supported while connecting</p>
1f918f2002-05-26Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson  <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>create</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><span class='object'>Stdio.File</span> <span class='class'>Stdio.File</span><b>(</b><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><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='datatype'>int</code> <code class='argument'>mask</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'>descriptorname</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>There are four basic ways to create a Stdio.File object. The first is calling it without any arguments, in which case the you'd have to call <code>open()</code>, <code>connect()</code> or some other method which connects the File object with a stream.</p> <p> The second way is calling it with a <code>filename</code> and open <code>mode</code>. This is the same thing as cloning and then calling <code>open()</code>, except shorter and faster.</p>
84ea4e2003-04-07Martin Nilsson <p> The third way is to call it with <code>descriptorname</code> of <code class='expr'>"stdin"</code>, <code class='expr'>"stdout"</code> or <code class='expr'>"stderr"</code>. This will open the specified
c3fe742003-02-05Martin Nilsson  standard stream.</p> <p> For the advanced users, you can use the file descriptors of the systems (note: emulated by pike on some systems - like NT). This is only useful for streaming purposes on unix systems. This is <b>not recommended at all</b> if you don't know what you're into. Default
84ea4e2003-04-07Martin Nilsson  <code>mode</code> for this is <code class='expr'>"rw"</code>.</p>
715b8a2002-10-12Martin Nilsson </dd>
c3fe742003-02-05Martin Nilsson <dt class='head--doc'>Note</dt> <dd class='body--doc'><p>Open mode will be filtered through the system UMASK. You might need to use <code>chmod()</code> later.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>open()</code>, <code>connect()</code>, <code>Stdio.FILE</code>,</p>
1f918f2002-05-26Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson 
5bfef52003-04-01Martin Nilsson <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>
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>dup</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='object unresolved'>File</code> <b><span class='method'>dup</span>(</b><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>This function returns a clone of Stdio.File with all variables copied from this file.</p>
715b8a2002-10-12Martin Nilsson </dd>
c3fe742003-02-05Martin Nilsson <dt class='head--doc'>Note</dt> <dd class='body--doc'><p>All variables, even <tt>id</tt>, are copied.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>assign()</code></p>
e4e3f32002-04-06Martin Nilsson </dd></dl>
5bfef52003-04-01Martin Nilsson <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>
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>errno</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>int</code> <b><span class='method'>errno</span>(</b><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Returns the error code for the last command on this file. Error code is normally cleared when a command is successful.</p>
1f918f2002-05-26Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson 
5bfef52003-04-01Martin Nilsson <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>
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'>
c3fe742003-02-05Martin Nilsson <dt class='head--type'><span class='homogen--type'>Inherit</span> <span class='homogen--name'><b>Fd_ref</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><span class='datatype'><code class='modifier'>optional</code> inherit Fd_ref</span> : <span class='inherit'>Fd_ref</span></code></p></dd> </dl>
e4e3f32002-04-06Martin Nilsson  <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>line_iterator</b></span>
1f918f2002-05-26Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>object</code> <b><span class='method'>line_iterator</span>(</b><code class='datatype'>int</code>|<code class='datatype'>void</code> <code class='argument'>trim</code><b>)</b></code></p></dd> <dt class='head--doc'>Description</dt> <dd class='body--doc'><p>Returns an iterator that will loop over the lines in this file. If trim is true, all '\r' characters will be removed from the input.</p> </dd></dl>
e4e3f32002-04-06Martin Nilsson 
5bfef52003-04-01Martin Nilsson <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>
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>open</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <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'>mask</code><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Open a file for read, write or append. The parameter <code>mode</code> should contain one or more of the following letters:</p>
84ea4e2003-04-07Martin Nilsson <table class='box'><tr><td><code><code class='key'>"r"</code></code></td><td><p>Open file for reading.</p>
c3fe742003-02-05Martin Nilsson </td></tr>
84ea4e2003-04-07Martin Nilsson <tr><td><code><code class='key'>"w"</code></code></td><td><p>Open file for writing.</p>
c3fe742003-02-05Martin Nilsson </td></tr>
84ea4e2003-04-07Martin Nilsson <tr><td><code><code class='key'>"a"</code></code></td><td><p>Open file for append (use with <code class='expr'>"w"</code>).</p>
c3fe742003-02-05Martin Nilsson </td></tr>
84ea4e2003-04-07Martin Nilsson <tr><td><code><code class='key'>"t"</code></code></td><td><p>Truncate file at open (use with <code class='expr'>"w"</code>).</p>
c3fe742003-02-05Martin Nilsson </td></tr>
84ea4e2003-04-07Martin Nilsson <tr><td><code><code class='key'>"c"</code></code></td><td><p>Create file if it doesn't exist (use with <code class='expr'>"w"</code>).</p>
c3fe742003-02-05Martin Nilsson </td></tr>
84ea4e2003-04-07Martin Nilsson <tr><td><code><code class='key'>"x"</code></code></td><td><p>Fail if file already exists (use with <code class='expr'>"c"</code>).</p>
c3fe742003-02-05Martin Nilsson </td></tr>
84ea4e2003-04-07Martin Nilsson </table><p><code>mode</code> should always contain at least one of the letters <code class='expr'>"r"</code> or <code class='expr'>"w"</code>.</p> <p> The parameter <code>mask</code> is protection bits to use if the file is created. Default is <code class='expr'>0666</code> (read+write for all in octal notation).</p>
c3fe742003-02-05Martin Nilsson </dd> <dt class='head--doc'>Returns</dt>
84ea4e2003-04-07Martin Nilsson <dd class='body--doc'><p>This function returns <code class='expr'>1</code> for success, <code class='expr'>0</code> otherwise.</p>
c3fe742003-02-05Martin Nilsson </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>close()</code>, <code>create()</code></p>
1f918f2002-05-26Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson 
5bfef52003-04-01Martin Nilsson <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>
84ea4e2003-04-07Martin Nilsson <p> If <code>access</code> is not specified, it will default to <code class='expr'>00666</code>.</p>
5bfef52003-04-01Martin Nilsson </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>
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>open_socket</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <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>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>This makes this file into a socket ready for connections. The reason for this function is so that you can set the socket to nonblocking or blocking (default is blocking) before you call <code>connect()</code>.</p> <p> If you give a <code>port</code> number to this function, the socket will be bound to this <code>port</code> locally before connecting anywhere. This is only useful for some silly protocols like <b>FTP</b>. You may also specify an <code>address</code> to bind to if your machine has many IP numbers.</p> </dd> <dt class='head--doc'>Returns</dt> <dd class='body--doc'><p>This function returns 1 for success, 0 otherwise.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>connect()</code>, <code>set_nonblocking()</code>, <code>set_blocking()</code></p>
1f918f2002-05-26Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson 
c3fe742003-02-05Martin Nilsson 
5bfef52003-04-01Martin Nilsson <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>
84ea4e2003-04-07Martin Nilsson <p> Returns <code class='expr'>1</code> if there is data available to read, <code class='expr'>0</code> (zero) if there is no data available, and <code class='expr'>-1</code> if something went wrong.</p>
5bfef52003-04-01Martin Nilsson </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>
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>pipe</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <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>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>This function creates a bi-directional pipe between the object it was called in and an object that is returned. The two ends of the pipe are indistinguishable. If the File object this function is called in was open to begin with, it will be closed before the pipe is created.</p> </dd><dt class='head--fixme'>FIXME</dt>
84ea4e2003-04-07Martin Nilsson <dd class='body--fixme'><p>Document the <code class='expr'>PROP_</code> properties.</p>
c3fe742003-02-05Martin Nilsson </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>Process.create_process()</code></p>
1f918f2002-05-26Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson 
5bfef52003-04-01Martin Nilsson <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>
84ea4e2003-04-07Martin Nilsson <p> If the argument <code>local</code> is not specified, or is <code class='expr'>0</code> (zero),
5bfef52003-04-01Martin Nilsson  the remote address will be returned. Otherwise, if <code>local</code> is
84ea4e2003-04-07Martin Nilsson  <code class='expr'>1</code>, the local address will be returned.</p>
5bfef52003-04-01Martin Nilsson <p> If the file is not a socket, not connected, or some other error
84ea4e2003-04-07Martin Nilsson  occurrs, <code class='expr'>0</code> (zero) will be returned.</p>
5bfef52003-04-01Martin Nilsson </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>connect()</code></p> </dd></dl>
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>query_close_callback</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <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>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>This function returns the <tt>close_callback</tt>, which has been set with <code>set_nonblocking()</code> or <code>set_close_callback()</code>.</p>
1f918f2002-05-26Martin Nilsson </dd>
c3fe742003-02-05Martin Nilsson <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>set_nonblocking()</code>, <code>set_close_callback()</code></p> </dd></dl>
e4e3f32002-04-06Martin Nilsson 
5bfef52003-04-01Martin Nilsson <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>
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>query_id</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>mixed</code> <b><span class='method'>query_id</span>(</b><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>This function returns the <tt>id</tt> that has been set with <code>set_id()</code>.</p>
50af352002-07-15Martin Nilsson </dd> <dt class='head--doc'>See also</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p><code>set_id()</code></p>
e4e3f32002-04-06Martin Nilsson </dd></dl>
c3fe742003-02-05Martin Nilsson  <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span> <span class='homogen--name'><b>query_read_callback</b></span> </dt> <dd><p><code><code class='datatype'>function</code>(<code class='datatype'>mixed</code>, <code class='datatype'>string</code>:<code class='datatype'>void</code>) <b><span class='method'>query_read_callback</span>(</b><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>This function returns the <tt>read_callback</tt>, which has been set with <code>set_nonblocking()</code> or <code>set_read_callback()</code>.</p>
50af352002-07-15Martin Nilsson </dd> <dt class='head--doc'>See also</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p><code>set_nonblocking()</code>, <code>set_read_callback</code></p>
e4e3f32002-04-06Martin Nilsson </dd></dl>
c3fe742003-02-05Martin Nilsson 
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>query_read_oob_callback</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>function</code>(<code class='datatype'>mixed</code>, <code class='datatype'>string</code>:<code class='datatype'>void</code>) <b><span class='method'>query_read_oob_callback</span>(</b><b>)</b></code></p></dd> <dt class='head--fixme'>FIXME</dt> <dd class='body--fixme'><p>Document this function.</p>
e4e3f32002-04-06Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>query_write_callback</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>void</code>) <b><span class='method'>query_write_callback</span>(</b><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>This function returns the <tt>write_callback</tt>, which has been set with <code>set_nonblocking()</code> or <code>set_write_callback()</code>.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>set_nonblocking()</code>, <code>set_write_callback</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_write_oob_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_write_oob_callback</span>(</b><b>)</b></code></p></dd> <dt class='head--fixme'>FIXME</dt> <dd class='body--fixme'><p>Document this function.</p>
e4e3f32002-04-06Martin Nilsson </dd></dl>
5bfef52003-04-01Martin Nilsson <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>
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>read_function</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <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>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Returns a function that when called will call <code>read</code> with nbytes as argument. Can be used to get various callback functions, as an example the fourth argument to String.SplitIterator.</p>
e4e3f32002-04-06Martin Nilsson </dd></dl>
1f918f2002-05-26Martin Nilsson 
5bfef52003-04-01Martin Nilsson <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>
4121b12003-04-01Martin Stjernholm <p> If <code>mult</code> or <code>add</code> are specified, <code>pos</code> will be calculated as
5bfef52003-04-01Martin Nilsson  <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>
84ea4e2003-04-07Martin Nilsson <dd class='body--doc'><p>Returns the new offset, or <code class='expr'>-1</code> on failure.</p>
5bfef52003-04-01Martin Nilsson </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>
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>set_blocking</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_blocking</span>(</b><b>)</b></code></p></dd>
1f918f2002-05-26Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>This function sets a stream to blocking mode. i.e. all reads and writes will wait until data has been transferred before returning.</p>
1f918f2002-05-26Martin Nilsson </dd>
c3fe742003-02-05Martin Nilsson <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>set_nonblocking()</code></p>
1f918f2002-05-26Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson 
5bfef52003-04-01Martin Nilsson <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>
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <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>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_nonblocking_keep_callbacks</span>(</b><b>)</b></code><br> <code><code class='datatype'>void</code> <b><span class='method'>set_blocking_keep_callbacks</span>(</b><b>)</b></code></p></dd>
1f918f2002-05-26Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>toggle between blocking and nonblocking, without changing the callbacks</p>
1f918f2002-05-26Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson 
5bfef52003-04-01Martin Nilsson <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
84ea4e2003-04-07Martin Nilsson  specifying <code class='expr'>"r"</code> or <code class='expr'>"w"</code>.</p>
5bfef52003-04-01Martin Nilsson </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>
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>set_close_callback</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <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> <dt class='head--doc'>Description</dt> <dd class='body--doc'><p>This function sets the <tt>close_callback</tt> for the file. The <tt>close callback</tt> is called when the remote end of a socket or pipe is closed.</p> <p> The callback is called with the <tt>id</tt> of the file as argument.</p> </dd> <dt class='head--doc'>Note</dt> <dd class='body--doc'><p>This function does not set the file nonblocking.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>set_nonblocking()</code>, <code>close</code> <code>query_close_callback()</code>, <code>set_read_callback()</code>, <code>set_write_callback()</code>, <code>set_id()</code></p> </dd></dl>
e4e3f32002-04-06Martin Nilsson 
5bfef52003-04-01Martin Nilsson <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>
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>set_id</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <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>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>This function sets the <tt>id</tt> of this file. The <tt>id</tt> is mainly used as an identifier that is sent as the first argument to all
84ea4e2003-04-07Martin Nilsson  callbacks. The default <tt>id</tt> is <code class='expr'>0</code> (zero). Another possible
c3fe742003-02-05Martin Nilsson  use of the <tt>id</tt> is to hold all data related to this file in a mapping or array.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>query_id()</code></p>
e4e3f32002-04-06Martin Nilsson </dd></dl>
5bfef52003-04-01Martin Nilsson <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>
45eff82002-06-11Johan Sundström <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>set_nonblocking</b></span>
45eff82002-06-11Johan Sundström </dt>
c3fe742003-02-05Martin Nilsson <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>
45eff82002-06-11Johan Sundström 
50af352002-07-15Martin Nilsson <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>This function sets a stream to nonblocking mode. When data arrives on the stream, <code>read_callback</code> will be called with some or all of this data. When the stream has buffer space over for writing, <code>write_callback</code> will be called so that you can write more data to it. If the stream is closed at the other end, <code>close_callback</code> will be called. </p> <p> When out-of-band data arrives on the stream, <code>read_oob_callback</code> will be called with some or all of this data. When the stream allows out-of-band data to be sent, <code>write_oob_callback</code> will be called so that you can write out-of-band data to it.</p> <p> All callbacks will have the <tt>id</tt> of file as first argument when called (see <code>set_id()</code>).</p> <p> If no arguments are given, the callbacks will not be changed. The stream will just be set to nonblocking mode.</p> </dd> <dt class='head--doc'>Note</dt> <dd class='body--doc'><p>Out-of-band data will note be supported if Pike was compiled with the option <tt>'--without-oob'</tt>.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>set_blocking()</code>, <code>set_id()</code>, <code>set_read_callback()</code>, <code>set_write_callback()</code>, <code>set_close_callback()</code></p>
45eff82002-06-11Johan Sundström </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>set_read_callback</b></span>
45eff82002-06-11Johan Sundström </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_read_callback</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_cb</code><b>)</b></code></p></dd>
45eff82002-06-11Johan Sundström 
50af352002-07-15Martin Nilsson <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>This function sets the <tt>read_callback</tt> for the file. The <tt>read_callback</tt> is called whenever there is data to read from the file.</p> <p> The callback is called with the <tt>id</tt> of the file as first argument and some or all of its data as second.</p> </dd> <dt class='head--doc'>Note</dt> <dd class='body--doc'><p>This function does not set the file nonblocking.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>set_nonblocking()</code>, <code>read()</code>, <code>query_read_callback()</code>, <code>set_write_callback()</code>, <code>set_close_callback()</code>, <code>set_read_oob_callback</code> <code>set_write_oob_callback()</code>, <code>set_id()</code></p>
45eff82002-06-11Johan Sundström </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>set_read_oob_callback</b></span>
45eff82002-06-11Johan Sundström </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_read_oob_callback</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_oob_cb</code><b>)</b></code></p></dd> <dt class='head--fixme'>FIXME</dt> <dd class='body--fixme'><p>Document this function.</p> </dd></dl>
45eff82002-06-11Johan Sundström  <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>set_write_callback</b></span>
45eff82002-06-11Johan Sundström </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_write_callback</span>(</b><code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>void</code>) <code class='argument'>write_cb</code><b>)</b></code></p></dd>
45eff82002-06-11Johan Sundström 
50af352002-07-15Martin Nilsson <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>This function sets the <tt>write_callback</tt> for the file. The <tt>write_callback</tt> is called whenever there is buffer space available to write to for the file.</p> <p> The callback is called with the <tt>id</tt> of the file as argument.</p> </dd> <dt class='head--doc'>Note</dt> <dd class='body--doc'><p>This function does not set the file nonblocking.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>set_nonblocking()</code>, <code>write()</code>, <code>query_write_callback()</code>, <code>set_read_callback()</code>, <code>set_close_callback()</code>, <code>set_read_oob_callback</code> <code>set_write_oob_callback()</code>, <code>set_id()</code></p>
45eff82002-06-11Johan Sundström </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>set_write_oob_callback</b></span>
45eff82002-06-11Johan Sundström </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_write_oob_callback</span>(</b><code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>void</code>) <code class='argument'>write_oob_cb</code><b>)</b></code></p></dd> <dt class='head--fixme'>FIXME</dt> <dd class='body--fixme'><p>Document this function.</p> </dd></dl>
45eff82002-06-11Johan Sundström 
5bfef52003-04-01Martin Nilsson <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>,
84ea4e2003-04-07Martin Nilsson  but for the file it is called in. If file is not an open file, <code class='expr'>0</code>
5bfef52003-04-01Martin Nilsson  (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>
84ea4e2003-04-07Martin Nilsson <dd class='body--doc'><p>Returns <code class='expr'>0</code> (zero) and sets errno on failure.</p> <p> Returns <code class='expr'>1</code> on success.</p>
5bfef52003-04-01Martin Nilsson </dd></dl>
c3fe742003-02-05Martin Nilsson <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> </dt> <dd><p><code><code class='datatype'>mapping</code> <b><span class='method'>tcgetattr</span>(</b><b>)</b></code><br> <code><code class='datatype'>int</code> <b><span class='method'>tcsetattr</span>(</b><code class='datatype'>mapping</code> <code class='argument'>attr</code><b>)</b></code><br> <code><code class='datatype'>int</code> <b><span class='method'>tcsetattr</span>(</b><code class='datatype'>mapping</code> <code class='argument'>attr</code>, <code class='datatype'>string</code> <code class='argument'>when</code><b>)</b></code></p></dd> <dt class='head--doc'>Description</dt> <dd class='body--doc'><p>Gets/sets term attributes. The returned value/the <code>attr</code> parameter is a mapping on the form</p> <table class='box'><tr><td><code><code class='key'>"ispeed"</code> : <code class='datatype'>int(-1..)</code></code></td><td><p>In baud rate.</p> </td></tr> <tr><td><code><code class='key'>"ospeed"</code> : <code class='datatype'>int(-1..)</code></code></td><td><p>Out baud rate.</p> </td></tr> <tr><td><code><code class='key'>"csize"</code> : <code class='datatype'>int(-1..-1)</code>|<code class='datatype'>int(5..8)</code></code></td><td><p>Character size.</p> </td></tr> <tr><td><code><code class='key'>"rows"</code> : <code class='datatype'>int</code></code></td><td><p>Terminal rows.</p> </td></tr> <tr><td><code><code class='key'>"columns"</code> : <code class='datatype'>int</code></code></td><td><p>Terminal columns.</p> </td></tr> <tr><td><code><code class='key'>flag_name</code> : <code class='datatype'>bool</code></code></td><td><p>The value of a named flag. The flag name is the string describing the termios flags (IGNBRK, BRKINT, IGNPAR, PARMRK, INPCK, ISTRIP, INLCR, IGNCR, ICRNL, IUCLC, IXON, IXANY, IXOFF, IMAXBEL, OPOST, OLCUC, ONLCR, OCRNL, ONOCR, ONLRET, OFILL, OFDEL, OXTABS, ONOEOT, CSTOPB, CREAD, PARENB, PARODD, HUPCL, CLOCAL, CRTSCTS, ISIG, ICANON, XCASE, ECHO, ECHOE, ECHOK, ECHONL, ECHOCTL, ECHOPRT, ECHOKE, FLUSHO, NOFLSH, TOSTOP, PENDIN). See the manpage for termios or other documentation for more information. All flags are not available on all platforms.</p> </td></tr> <tr><td><code><code class='key'>character_name</code> : <code class='datatype'>int(8bit)</code></code></td><td><p>Sets the value of a control character (VINTR, VQUIT, VERASE, VKILL, VEOF, VTIME, VMIN, VSWTC, VSTART, VSTOP, VSUSP, VEOL, VREPRINT, VDISCARD, VWERASE, VLNEXT, VEOL2). All control characters are not available on all platforms.</p> </td></tr> </table><p>Negative values are not allowed as indata, but might appear in the result from <code>tcgetattr</code> when the actual value is unknown. <code>tcsetattr</code> returns 0 if failed.</p> <p> The argument <code>when</code> to <code>tcsetattr</code> describes when the changes are to take effect:</p> <table class='box'><tr><td><code><code class='key'>"TCSANOW"</code></code></td><td><p>The change occurs immediately (default).</p> </td></tr> <tr><td><code><code class='key'>"TCSADRAIN"</code></code></td><td><p>The change occurs after all output has been written.</p> </td></tr> <tr><td><code><code class='key'>"TCSAFLUSH"</code></code></td><td><p>The change occurs after all output has been written, and empties input buffers.</p> </td></tr> </table> </dd> <dt class='head--doc'>Example</dt> <dd class='example'><pre><p>// setting the terminal in raw mode: Stdio.stdin-&gt;tcsetattr((["ECHO":0,"ICANON":0,"VMIN":0,"VTIME":0]));</p> </pre></dd> <dt class='head--doc'>Note</dt> <dd class='body--doc'><p>Unknown flags are ignored by <code>tcsetattr()</code>. <code>tcsetattr</code> always changes the attribute, so only include attributes that actually should be altered in the attribute mapping.</p> </dd> <dt class='head--doc'>Bugs</dt> <dd class='body--doc'><p>Terminal rows and columns setting by <code>tcsetattr()</code> is not currently supported.</p> </dd></dl>
5bfef52003-04-01Martin Nilsson  <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>
84ea4e2003-04-07Martin Nilsson <dd class='body--doc'><p>Returns <code class='expr'>1</code> on success, and <code class='expr'>0</code> (zero) on failure.</p>
5bfef52003-04-01Martin Nilsson </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>
c3fe742003-02-05Martin Nilsson </dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>Stdio.FILE</b></h2> </dt><dd><dl class='group--doc'>
45eff82002-06-11Johan Sundström <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Stdio.FILE is a buffered version of Stdio.File, it inherits Stdio.File and has most of the functionality of Stdio.File. However, it has an input buffer that allows line-by-line input. Note that the output part of Stdio.FILE is not buffered at this moment.</p>
45eff82002-06-11Johan Sundström </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>_get_iterator</b></span>
45eff82002-06-11Johan Sundström </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><span class='class'>Stdio.FILE</span> <span class='method'>a</span>;<br> foreach( a; index; value ) or<br></code><code><code class='modifier'>protected</code> <code class='datatype'>object</code> <b><span class='method'>_get_iterator</span>(</b><b>)</b></code></p></dd>
45eff82002-06-11Johan Sundström  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Returns an iterator that will loop over the lines in this file.</p>
50af352002-07-15Martin Nilsson </dd>
c3fe742003-02-05Martin Nilsson <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>line_iterator()</code></p>
45eff82002-06-11Johan Sundström </dd></dl>
84d5df2002-09-16Johan Schön <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>getchar</b></span>
84d5df2002-09-16Johan Schön </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>int</code> <b><span class='method'>getchar</span>(</b><b>)</b></code></p></dd>
84d5df2002-09-16Johan Schön  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>This function returns one character from the input stream.</p>
84d5df2002-09-16Johan Schön </dd>
c3fe742003-02-05Martin Nilsson <dt class='head--doc'>Returns</dt> <dd class='body--doc'><p>Returns the ASCII value of the character.</p> </dd> <dt class='head--doc'>Note</dt>
84ea4e2003-04-07Martin Nilsson <dd class='body--doc'><p>Returns an <code class='expr'>int</code> and not a <code class='expr'>string</code> of length 1.</p>
84d5df2002-09-16Johan Schön </dd></dl>
45eff82002-06-11Johan Sundström <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>gets</b></span>
45eff82002-06-11Johan Sundström </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>string</code> <b><span class='method'>gets</span>(</b><b>)</b></code></p></dd>
45eff82002-06-11Johan Sundström  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Read one line of input with support for input conversion.</p> </dd> <dt class='head--doc'>Returns</dt>
84ea4e2003-04-07Martin Nilsson <dd class='body--doc'><p>This function returns the line read if successful, and <code class='expr'>0</code> if
c3fe742003-02-05Martin Nilsson  no more lines are available.</p>
45eff82002-06-11Johan Sundström </dd>
50af352002-07-15Martin Nilsson <dt class='head--doc'>See also</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p><code>ngets()</code>, <code>read()</code>, <code>line_iterator()</code>, <code>set_charset()</code></p>
45eff82002-06-11Johan Sundström </dd></dl> <hr /> <dl class='group--doc'>
c3fe742003-02-05Martin Nilsson <dt class='head--type'><span class='homogen--type'>Inherit</span> <span class='homogen--name'><b>file</b></span>
45eff82002-06-11Johan Sundström </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><span class='datatype'>inherit File</span> : <span class='inherit'>file</span></code></p></dd> </dl>
e4e3f32002-04-06Martin Nilsson 
50af352002-07-15Martin Nilsson 
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>line_iterator</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>object</code> <b><span class='method'>line_iterator</span>(</b><code class='datatype'>int</code>|<code class='datatype'>void</code> <code class='argument'>trim</code><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Returns an iterator that will loop over the lines in this file. If trim is true, all '\r' characters will be removed from the input.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>_get_iterator()</code></p>
e4e3f32002-04-06Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>printf</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>int</code> <b><span class='method'>printf</span>(</b><code class='datatype'>string</code> <code class='argument'>format</code>, <code class='datatype'>mixed</code> ... <code class='argument'>data</code><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>This function does approximately the same as: <code class='expr'><code>write</code>(<code>sprintf</code>(<code>format</code>,@<code>data</code>))</code>.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>write()</code>, <code>sprintf()</code></p>
e4e3f32002-04-06Martin Nilsson </dd></dl>
1f918f2002-05-26Martin Nilsson <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>read</b></span>
1f918f2002-05-26Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>string</code> <b><span class='method'>read</span>(</b><code class='datatype'>int</code>|<code class='datatype'>void</code> <code class='argument'>bytes</code>, <code class='datatype'>void</code>|<code class='datatype'>bool</code> <code class='argument'>now</code><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson 
1f918f2002-05-26Martin Nilsson <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Read <code>bytes</code> with buffering and support for input conversion.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>Stdio.File()-&gt;read()</code>, <code>set_charset()</code></p>
1f918f2002-05-26Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson  <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>set_charset</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_charset</span>(</b><code class='datatype'>string</code> <code class='argument'>charset</code><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Sets the input and output charset of this file to the specified charset.</p>
e4e3f32002-04-06Martin Nilsson </dd></dl>
1f918f2002-05-26Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>ungets</b></span>
1f918f2002-05-26Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>ungets</span>(</b><code class='datatype'>string</code> <code class='argument'>s</code><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson 
1f918f2002-05-26Martin Nilsson <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>This function puts a string back in the input buffer. The string can then be read with eg <code>read()</code>, <code>gets()</code> or <code>getchar()</code>.</p>
1f918f2002-05-26Martin Nilsson </dd> <dt class='head--doc'>See also</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p><code>read()</code>, <code>gets()</code>, <code>getchar()</code></p>
e4e3f32002-04-06Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>write</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><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='datatype'>string</code> <code class='argument'>what</code>, <code class='datatype'>mixed</code> ... <code class='argument'>fmt</code><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Write <code>what</code> with support for output_conversion.</p>
e4e3f32002-04-06Martin Nilsson </dd>
1f918f2002-05-26Martin Nilsson <dt class='head--doc'>See also</dt>
c3fe742003-02-05Martin Nilsson <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.Port</b></h2> </dt><dd><dl class='group--doc'> <dt class='head--doc'>Description</dt> <dd class='body--doc'><p>Handles listening to socket ports. Whenever you need a bound socket that is open and listens for connections you should use this program.</p>
e4e3f32002-04-06Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>accept</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='object unresolved'>File</code> <b><span class='method'>accept</span>(</b><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>This function completes a connection made from a remote machine to this port. It returns a two-way stream in the form of a clone of Stdio.File. The new file is by default set to blocking mode.</p>
50af352002-07-15Martin Nilsson </dd> <dt class='head--doc'>See also</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p><code>Stdio.File</code></p>
1f918f2002-05-26Martin Nilsson </dd></dl>
9699552002-03-12Martin Nilsson 
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>bind</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>int</code> <b><span class='method'>bind</span>(</b><code class='datatype'>int</code> <code class='argument'>port</code>, <code class='datatype'>void</code>|<code class='datatype'>function</code>(:<code class='datatype void'>void</code>) <code class='argument'>accept_callback</code>, <code class='datatype'>void</code>|<code class='datatype'>string</code> <code class='argument'>ip</code><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Bind opens a sockets and binds it to port number on the local machine. If the second argument is present, the socket is set to nonblocking and the callback funcition is called whenever something connects to the socket. The callback will receive the id for this port as argument. Bind returns 1 on success, and zero on failiure.</p> <p> If the optional argument 'ip' is given, bind will try to bind to this ip name or number.</p>
50af352002-07-15Martin Nilsson </dd> <dt class='head--doc'>See also</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p><code>accept</code></p>
1f918f2002-05-26Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson  <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>create</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><span class='object'>Stdio.Port</span> <span class='class'>Stdio.Port</span><b>(</b><b>)</b></code><br> <code><span class='object'>Stdio.Port</span> <span class='class'>Stdio.Port</span><b>(</b><code class='datatype'>int</code> <code class='argument'>port</code><b>)</b></code><br> <code><span class='object'>Stdio.Port</span> <span class='class'>Stdio.Port</span><b>(</b><code class='datatype'>int</code> <code class='argument'>port</code>, <code class='datatype'>function</code>(:<code class='datatype void'>void</code>) <code class='argument'>accept_callback</code><b>)</b></code><br> <code><span class='object'>Stdio.Port</span> <span class='class'>Stdio.Port</span><b>(</b><code class='datatype'>int</code> <code class='argument'>port</code>, <code class='datatype'>function</code>(:<code class='datatype void'>void</code>) <code class='argument'>accept_callback</code>, <code class='datatype'>string</code> <code class='argument'>ip</code><b>)</b></code><br> <code><span class='object'>Stdio.Port</span> <span class='class'>Stdio.Port</span><b>(</b><code class='argument'>"stdin"</code><b>)</b></code><br> <code><span class='object'>Stdio.Port</span> <span class='class'>Stdio.Port</span><b>(</b><code class='argument'>"stdin"</code>, <code class='datatype'>function</code>(:<code class='datatype void'>void</code>) <code class='argument'>accept_callback</code><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
84ea4e2003-04-07Martin Nilsson <dd class='body--doc'><p>If the first argument is other than <code class='expr'>"stdin"</code> the arguments will
c3fe742003-02-05Martin Nilsson  be passed to <code>bind()</code>.</p>
84ea4e2003-04-07Martin Nilsson <p> When create is called with <code class='expr'>"stdin"</code> as the first argument, a socket is created out of the file descriptor <code class='expr'>0</code>. This is only
c3fe742003-02-05Martin Nilsson  useful if that actually is a socket to begin with.</p>
50af352002-07-15Martin Nilsson </dd> <dt class='head--doc'>See also</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p><code>bind</code></p>
1f918f2002-05-26Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson  <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>errno</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>int</code> <b><span class='method'>errno</span>(</b><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>If the last call done on this port failed, errno will return an integer describing what went wrong. Refer to your unix manual for further information.</p>
1f918f2002-05-26Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson  <hr /> <dl class='group--doc'>
c3fe742003-02-05Martin Nilsson <dt class='head--type'><span class='homogen--type'>Inherit</span> <span class='homogen--name'><b>_port</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><span class='datatype'>inherit _port</span> : <span class='inherit'>_port</span></code></p></dd> </dl>
e4e3f32002-04-06Martin Nilsson  <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>listen_fd</b></span>
1f918f2002-05-26Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>int</code> <b><span class='method'>listen_fd</span>(</b><code class='datatype'>int</code> <code class='argument'>fd</code>, <code class='datatype'>void</code>|<code class='datatype'>function</code>(:<code class='datatype void'>void</code>) <code class='argument'>accept_callback</code><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>This function does the same as port-&gt;bind, except that instead of creating a new socket and bind it to a port, it expects that the filedescriptor 'fd' is an already open port.</p> </dd> <dt class='head--doc'>Note</dt> <dd class='body--doc'><p>This function is only for the advanced user, and is generally used when sockets are passed to Pike at exec time.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>bind</code>, <code>accept</code></p>
e4e3f32002-04-06Martin Nilsson </dd></dl>
c3fe742003-02-05Martin Nilsson 
e4e3f32002-04-06Martin Nilsson  <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>port_accept</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='object unresolved'>Stdio.File</code> <b><span class='method'>port_accept</span>(</b><b>)</b></code></p></dd> </dl>
e4e3f32002-04-06Martin Nilsson 
50af352002-07-15Martin Nilsson  <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>query_address</b></span>
50af352002-07-15Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>string</code> <b><span class='method'>query_address</span>(</b><code class='datatype'>string</code> <code class='argument'>arg1</code><b>)</b></code></p></dd>
50af352002-07-15Martin Nilsson <dt class='head--fixme'>FIXME</dt> <dd class='body--fixme'><p>Document this function.</p>
1f918f2002-05-26Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson 
1f918f2002-05-26Martin Nilsson <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>query_id</b></span>
1f918f2002-05-26Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>mixed</code> <b><span class='method'>query_id</span>(</b><b>)</b></code></p></dd>
1f918f2002-05-26Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>This function returns the id for this port. The id is normally the first argument to accept_callback.</p>
1f918f2002-05-26Martin Nilsson </dd>
c3fe742003-02-05Martin Nilsson <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>set_id</code></p> </dd></dl>
e4e3f32002-04-06Martin Nilsson  <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>set_id</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>mixed</code> <b><span class='method'>set_id</span>(</b><code class='datatype'>mixed</code> <code class='argument'>id</code><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson 
c3fe742003-02-05Martin Nilsson <dt class='head--doc'>Description</dt> <dd class='body--doc'><p>This function sets the id used for accept_callback by this port. The default id is <code>this_object()</code>.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>query_id</code></p> </dd></dl> </dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>Stdio.UDP</b></h2> </dt><dd><dl class='group--doc'> <dt class='head--doc'>Description</dt> <dd class='body--doc'><p>UDP (User Datagram Protocol) handling.</p> </dd></dl>
e4e3f32002-04-06Martin Nilsson  <hr /> <dl class='group--doc'>
c3fe742003-02-05Martin Nilsson <dt class='head--type'><span class='homogen--type'>Constant</span> <span class='homogen--name'><b>MSG_OOB</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>constant</code> Stdio.UDP.<code class='constant'>MSG_OOB</code></code></p></dd>
50af352002-07-15Martin Nilsson <dt class='head--fixme'>FIXME</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--fixme'><p>Document this constant.</p>
1f918f2002-05-26Martin Nilsson </dd></dl>
50af352002-07-15Martin Nilsson  <hr /> <dl class='group--doc'>
c3fe742003-02-05Martin Nilsson <dt class='head--type'><span class='homogen--type'>Constant</span> <span class='homogen--name'><b>MSG_PEEK</b></span>
50af352002-07-15Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>constant</code> Stdio.UDP.<code class='constant'>MSG_PEEK</code></code></p></dd>
50af352002-07-15Martin Nilsson <dt class='head--fixme'>FIXME</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--fixme'><p>Document this constant.</p>
1f918f2002-05-26Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson 
50af352002-07-15Martin Nilsson 
1f918f2002-05-26Martin Nilsson <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>bind</b></span>
1f918f2002-05-26Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>object</code> <b><span class='method'>bind</span>(</b><code class='datatype'>int</code> <code class='argument'>port</code><b>)</b></code><br> <code><code class='datatype'>object</code> <b><span class='method'>bind</span>(</b><code class='datatype'>int</code> <code class='argument'>port</code>, <code class='datatype'>string</code> <code class='argument'>address</code><b>)</b></code></p></dd>
1f918f2002-05-26Martin Nilsson <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Binds a port for recieving or transmitting UDP.</p>
1f918f2002-05-26Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson 
c3fe742003-02-05Martin Nilsson 
c628122002-10-19Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>connect</b></span>
c628122002-10-19Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>bool</code> <b><span class='method'>connect</span>(</b><code class='datatype'>string</code> <code class='argument'>address</code>, <code class='datatype'>int</code> <code class='argument'>port</code><b>)</b></code></p></dd>
c628122002-10-19Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Establish an UDP connection.</p> <p> This function connects an UDP socket previously created with <code>Stdio.UDP()</code> to a remote socket. The <code>address</code> is the IP name or number for the remote machine.</p> </dd> <dt class='head--doc'>Returns</dt>
84ea4e2003-04-07Martin Nilsson <dd class='body--doc'><p>Returns <code class='expr'>1</code> on success, <code class='expr'>0</code> (zero) otherwise.</p>
c3fe742003-02-05Martin Nilsson </dd> <dt class='head--doc'>Note</dt> <dd class='body--doc'><p>If the socket is in nonblocking mode, you have to wait for a write or close callback before you know if the connection failed or not.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>bind()</code>, <code>query_address()</code></p>
c628122002-10-19Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>enable_broadcast</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>bool</code> <b><span class='method'>enable_broadcast</span>(</b><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Set the broadcast flag. If enabled then sockets receive packets sent to a broadcast address and they are allowed to send packets to a broadcast address.</p> </dd> <dt class='head--doc'>Returns</dt>
84ea4e2003-04-07Martin Nilsson <dd class='body--doc'><p>Returns <code class='expr'>1</code> on success, <code class='expr'>0</code> (zero) otherwise.</p>
c3fe742003-02-05Martin Nilsson </dd> <dt class='head--doc'>Note</dt> <dd class='body--doc'><p>This is normally only avalable to root users.</p>
1f918f2002-05-26Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson 
c628122002-10-19Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>errno</b></span>
c628122002-10-19Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>int</code> <b><span class='method'>errno</span>(</b><b>)</b></code></p></dd>
c628122002-10-19Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Returns the error code for the last command on this object. Error code is normally cleared when a command is successful.</p>
c628122002-10-19Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>get_type</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>array</code>(<code class='datatype'>int</code>) <b><span class='method'>get_type</span>(</b><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Returns socket type and protocol family.</p>
1f918f2002-05-26Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson 
50af352002-07-15Martin Nilsson 
c3fe742003-02-05Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Inherit</span> <span class='homogen--name'><b>UDP</b></span> </dt> <dd><p><code><span class='datatype'>inherit files.UDP</span> : <span class='inherit'>UDP</span></code></p></dd> </dl>
c628122002-10-19Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>query_address</b></span>
c628122002-10-19Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>string</code> <b><span class='method'>query_address</span>(</b><b>)</b></code></p></dd>
c628122002-10-19Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Returns the local address of a socket on the form "x.x.x.x port". If this file is not a socket, not connected or some other error occurs, zero is returned.</p>
c628122002-10-19Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>read</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>mapping</code>(<code class='datatype'>string</code>:<code class='datatype'>int</code>|<code class='datatype'>string</code>) <b><span class='method'>read</span>(</b><b>)</b></code><br> <code><code class='datatype'>mapping</code>(<code class='datatype'>string</code>:<code class='datatype'>int</code>|<code class='datatype'>string</code>) <b><span class='method'>read</span>(</b><code class='datatype'>int</code> <code class='argument'>flag</code><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Read from the UDP socket.</p> <p> Flag <code>flag</code> is a bitfield, 1 for out of band data and 2 for peek</p> </dd> <dt class='head--doc'>Returns</dt> <dd class='body--doc'><p>mapping(string:int|string) in the form ([
70becb2003-03-12Marcus Agehall  "data" : string received data "ip" : string received from this ip
c3fe742003-02-05Martin Nilsson  "port" : int ...and this port ])</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>set_read_callback()</code></p>
e4e3f32002-04-06Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>send</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>int</code> <b><span class='method'>send</span>(</b><code class='datatype'>string</code> <code class='argument'>to</code>, <code class='datatype'>int</code> <code class='argument'>port</code>, <code class='datatype'>string</code> <code class='argument'>message</code><b>)</b></code><br> <code><code class='datatype'>int</code> <b><span class='method'>send</span>(</b><code class='datatype'>string</code> <code class='argument'>to</code>, <code class='datatype'>int</code> <code class='argument'>port</code>, <code class='datatype'>string</code> <code class='argument'>message</code>, <code class='datatype'>int</code> <code class='argument'>flags</code><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Send data to a UDP socket. The recepient address will be <code>to</code> and port will be <code>port</code>.</p> <p> Flag <code>flag</code> is a bitfield, 1 for out of band data and 2 for don't route flag.</p> </dd> <dt class='head--doc'>Returns</dt> <dd class='body--doc'><p>The number of bytes that were actually written.</p>
e4e3f32002-04-06Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>set_blocking</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>object</code> <b><span class='method'>set_blocking</span>(</b><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Sets this object to be blocking.</p>
1f918f2002-05-26Martin Nilsson </dd></dl>
9699552002-03-12Martin Nilsson 
e4e3f32002-04-06Martin Nilsson  <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>set_nonblocking</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='object unresolved'>UDP</code> <b><span class='method'>set_nonblocking</span>(</b><b>)</b></code><br> <code><code class='object unresolved'>UDP</code> <b><span class='method'>set_nonblocking</span>(</b><code class='datatype'>function</code>(<code class='datatype'>mapping</code>(<code class='datatype'>string</code>:<code class='datatype'>int</code>|<code class='datatype'>string</code>), <code class='datatype'>mixed</code> ... :<code class='datatype'>void</code>) <code class='argument'>read_cb</code>, <code class='datatype'>mixed</code> ... <code class='argument'>extra_args</code><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Set this object to nonblocking mode.</p> <p> If <code>read_cb</code> and <code>extra_args</code> are specified, they will be passed on to <code>set_read_callback()</code>.</p> </dd> <dt class='head--doc'>Returns</dt> <dd class='body--doc'><p>The called object.</p>
1f918f2002-05-26Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson 
1f918f2002-05-26Martin Nilsson <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>set_read_callback</b></span>
1f918f2002-05-26Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='object unresolved'>UDP</code> <b><span class='method'>set_read_callback</span>(</b><code class='datatype'>function</code>(<code class='datatype'>mapping</code>(<code class='datatype'>string</code>:<code class='datatype'>int</code>|<code class='datatype'>string</code>), <code class='datatype'>mixed</code> ... :<code class='datatype void'>void</code>) <code class='argument'>read_cb</code>, <code class='datatype'>mixed</code> ... <code class='argument'>extra_args</code><b>)</b></code></p></dd>
1f918f2002-05-26Martin Nilsson 
e4e3f32002-04-06Martin Nilsson <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>The <code>read_cb</code> function will receive a mapping similar to the mapping returned by <code>read()</code>:</p> <table class='box'><tr><td><code><code class='key'>"data"</code> : <code class='datatype'>string</code></code></td><td><p>Received data.</p> </td></tr> <tr><td><code><code class='key'>"ip"</code> : <code class='datatype'>string</code></code></td><td><p>Data was sent from this IP.</p> </td></tr> <tr><td><code><code class='key'>"port"</code> : <code class='datatype'>int</code></code></td><td><p>Data was sent from this port.</p> </td></tr> </table> </dd> <dt class='head--doc'>Returns</dt> <dd class='body--doc'><p>The called object.</p>
c628122002-10-19Martin Nilsson </dd> <dt class='head--doc'>See also</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p><code>read()</code></p>
e4e3f32002-04-06Martin Nilsson </dd></dl>
1f918f2002-05-26Martin Nilsson 
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>set_type</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>object</code> <b><span class='method'>set_type</span>(</b><code class='datatype'>int</code> <code class='argument'>sock_type</code><b>)</b></code><br> <code><code class='datatype'>object</code> <b><span class='method'>set_type</span>(</b><code class='datatype'>int</code> <code class='argument'>sock_type</code>, <code class='datatype'>int</code> <code class='argument'>family</code><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Sets socket type and protocol family.</p>
e4e3f32002-04-06Martin Nilsson </dd></dl>
c628122002-10-19Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>wait</b></span>
c628122002-10-19Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>bool</code> <b><span class='method'>wait</span>(</b><code class='datatype'>int</code>|<code class='datatype'>float</code> <code class='argument'>timeout</code><b>)</b></code></p></dd>
c628122002-10-19Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Check for data and wait max. <code>timeout</code> seconds.</p>
c628122002-10-19Martin Nilsson </dd>
c3fe742003-02-05Martin Nilsson <dt class='head--doc'>Returns</dt>
84ea4e2003-04-07Martin Nilsson <dd class='body--doc'><p>Returns <code class='expr'>1</code> if data are ready, <code class='expr'>0</code> (zero) otherwise.</p>
c628122002-10-19Martin Nilsson </dd></dl>
c3fe742003-02-05Martin Nilsson </dd></dl><dl><dt><h2 class='header'>Module <b class='ms datatype'>Stdio.Terminfo</b></h2> </dt><dd>
c628122002-10-19Martin Nilsson 
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>getFallbackTerm</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='modifier'>protected</code> <code class='object unresolved'>Termcap</code> <b><span class='method'>getFallbackTerm</span>(</b><code class='datatype'>string</code> <code class='argument'>term</code><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Returns an object describing the fallback terminal for the terminal <code>term</code>. This is usually equvivalent to <code>Stdio.Terminfo.getTerm("dumb")</code>.</p>
c628122002-10-19Martin Nilsson </dd> <dt class='head--doc'>See also</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Stdio.Terminfo.getTerm</p>
c628122002-10-19Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>getTerm</b></span>
c628122002-10-19Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='object unresolved'>Termcap</code> <b><span class='method'>getTerm</span>(</b><code class='datatype'>string</code>|<code class='datatype'>void</code> <code class='argument'>term</code><b>)</b></code></p></dd>
c628122002-10-19Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Returns an object describing the terminal term. If term is not specified, it will default to <code>getenv("TERM")</code> or if that fails to "dumb".</p> <p> Lookup of terminal information will first be done in the systems terminfo database, and if that fails in the termcap database. If neither database exists, a hardcoded entry for "dumb" will be used.</p>
c628122002-10-19Martin Nilsson </dd> <dt class='head--doc'>See also</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Stdio.Terminfo.getTerminfo, Stdio.Terminfo.getTermcap, Stdio.getFallbackTerm</p>
e4e3f32002-04-06Martin Nilsson </dd></dl>
c3fe742003-02-05Martin Nilsson 
e4e3f32002-04-06Martin Nilsson  <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>getTermcap</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='object unresolved'>Termcap</code> <b><span class='method'>getTermcap</span>(</b><code class='datatype'>string</code> <code class='argument'>term</code><b>)</b></code></p></dd>
932a632002-10-25Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Returns the terminal description object for <code>term</code> from the systems termcap database. Returns 0 if not found.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p>Stdio.Terminfo.getTerm, Stdio.Terminfo.getTerminfo</p>
932a632002-10-25Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>getTerminfo</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='object unresolved'>Terminfo</code> <b><span class='method'>getTerminfo</span>(</b><code class='datatype'>string</code> <code class='argument'>term</code><b>)</b></code></p></dd>
932a632002-10-25Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Returns the terminal description object for <code>term</code> from the systems terminfo database. Returns 0 if not found.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p>Stdio.Terminfo.getTerm, Stdio.Terminfo.getTermcap</p>
1f918f2002-05-26Martin Nilsson </dd></dl>
c3fe742003-02-05Martin Nilsson <dl><dt><h2 class='header'>Class <b class='ms datatype'>Stdio.Terminfo.Termcap</b></h2> </dt><dd><dl class='group--doc'>
1f918f2002-05-26Martin Nilsson <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Termcap terminal description object.</p>
1f918f2002-05-26Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson 
1f918f2002-05-26Martin Nilsson <hr /> <dl class='group--doc'>
c3fe742003-02-05Martin Nilsson <dt class='head--type'><span class='homogen--type'>Variable</span> <span class='homogen--name'><b>aliases</b></span>
1f918f2002-05-26Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>array</code>(<code class='datatype'>string</code>) Stdio.Terminfo.Termcap.<b><span class='variable'>aliases</span></b></code></p></dd> </dl>
9699552002-03-12Martin Nilsson  <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>create</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><span class='object'>Stdio.Terminfo.Termcap</span> <span class='class'>Stdio.Terminfo.Termcap</span><b>(</b><code class='datatype'>string</code> <code class='argument'>cap</code>, <code class='object unresolved'>TermcapDB</code>|<code class='datatype'>void</code> <code class='argument'>tcdb</code>, <code class='datatype'>int</code>|<code class='datatype'>void</code> <code class='argument'>maxrecurse</code><b>)</b></code></p></dd> </dl>
e4e3f32002-04-06Martin Nilsson  <hr /> <dl class='group--doc'>
c3fe742003-02-05Martin Nilsson <dt class='head--type'><span class='homogen--type'>Inherit</span> <span class='homogen--name'><b>TermMachine</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><span class='datatype'>inherit TermMachine</span> : <span class='inherit'>TermMachine</span></code></p></dd> </dl>
9699552002-03-12Martin Nilsson  <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>tputs</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>string</code> <b><span class='method'>tputs</span>(</b><code class='datatype'>string</code> <code class='argument'>s</code><b>)</b></code></p></dd>
9699552002-03-12Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Put termcap string</p>
50af352002-07-15Martin Nilsson </dd></dl>
c3fe742003-02-05Martin Nilsson </dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>Stdio.Terminfo.Terminfo</b></h2>
50af352002-07-15Martin Nilsson </dt><dd><dl class='group--doc'> <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Terminfo terminal description object</p>
e4e3f32002-04-06Martin Nilsson </dd></dl>
9699552002-03-12Martin Nilsson  <hr /> <dl class='group--doc'>
c3fe742003-02-05Martin Nilsson <dt class='head--type'><span class='homogen--type'>Variable</span> <span class='homogen--name'><b>aliases</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>array</code>(<code class='datatype'>string</code>) Stdio.Terminfo.Terminfo.<b><span class='variable'>aliases</span></b></code></p></dd> </dl>
9699552002-03-12Martin Nilsson  <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span> <span class='homogen--name'><b>create</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><span class='object'>Stdio.Terminfo.Terminfo</span> <span class='class'>Stdio.Terminfo.Terminfo</span><b>(</b><code class='datatype'>string</code> <code class='argument'>filename</code><b>)</b></code></p></dd> </dl>
e4e3f32002-04-06Martin Nilsson  <hr /> <dl class='group--doc'>
c3fe742003-02-05Martin Nilsson <dt class='head--type'><span class='homogen--type'>Inherit</span> <span class='homogen--name'><b>TermMachine</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><span class='datatype'>inherit TermMachine</span> : <span class='inherit'>TermMachine</span></code></p></dd> </dl>
9699552002-03-12Martin Nilsson  <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>tputs</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>string</code> <b><span class='method'>tputs</span>(</b><code class='datatype'>string</code> <code class='argument'>s</code><b>)</b></code></p></dd> <dt class='head--fixme'>FIXME</dt> <dd class='body--fixme'><p>Document this function</p>
9699552002-03-12Martin Nilsson </dd></dl>
c3fe742003-02-05Martin Nilsson </dd></dl></dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>Stdio.Readline</b></h2> </dt><dd>
9699552002-03-12Martin Nilsson  <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>add_to_kill_ring</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>add_to_kill_ring</span>(</b><code class='datatype'>string</code> <code class='argument'>s</code><b>)</b></code></p></dd> <dt class='head--fixme'>FIXME</dt> <dd class='body--fixme'><p>Document this function</p>
e4e3f32002-04-06Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>create</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><span class='object'>Stdio.Readline</span> <span class='class'>Stdio.Readline</span><b>(</b><code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>infd</code>, <code class='datatype'>object</code>|<code class='datatype'>string</code>|<code class='datatype'>void</code> <code class='argument'>interm</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>outfd</code>, <code class='datatype'>object</code>|<code class='datatype'>string</code>|<code class='datatype'>void</code> <code class='argument'>outterm</code><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Creates a Readline object, that takes input from <code>infd</code> and has output on <code>outfd</code>.</p>
50af352002-07-15Martin Nilsson </dd>
c3fe742003-02-05Martin Nilsson <dt class='head--doc'><span id='p-infd'></span>Parameter <code class='parameter'>infd</code></dt> <dd></dd><dd class='body--doc'><p>Defaults to <code>Stdio.stdout</code>.</p> </dd> <dt class='head--doc'><span id='p-interm'></span>Parameter <code class='parameter'>interm</code></dt> <dd></dd><dd class='body--doc'><p>Defaults to <code>Stdio.Terminfo.getTerm()</code>.</p> </dd> <dt class='head--doc'><span id='p-outfd'></span>Parameter <code class='parameter'>outfd</code></dt> <dd></dd><dd class='body--doc'><p>Defaults to <code>infd</code>, unless <code>infd</code> is 0, in which case <code>outfd</code> defaults to <code>Stdio.stdout</code>.</p> </dd> <dt class='head--doc'><span id='p-outterm'></span>Parameter <code class='parameter'>outterm</code></dt> <dd></dd><dd class='body--doc'><p>Defaults to <code>interm</code>.</p>
e4e3f32002-04-06Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>delete</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>delete</span>(</b><code class='datatype'>int</code> <code class='argument'>p1</code>, <code class='datatype'>int</code> <code class='argument'>p2</code><b>)</b></code></p></dd> <dt class='head--fixme'>FIXME</dt> <dd class='body--fixme'><p>Document this function</p>
e4e3f32002-04-06Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>delta_history</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>delta_history</span>(</b><code class='datatype'>int</code> <code class='argument'>d</code><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Changes the line to a line from the history <code>d</code> steps from the current entry (0 being the current line, negative values older, and positive values newer).</p>
50af352002-07-15Martin Nilsson </dd>
c3fe742003-02-05Martin Nilsson <dt class='head--doc'>Note</dt> <dd class='body--doc'><p>Only effective if you have a history object.</p>
78c3e22003-01-03Martin Nilsson </dd></dl>
3a44ef2003-01-03Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>destroy</b></span>
3a44ef2003-01-03Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>destroy</span>(</b><b>)</b></code></p></dd> <dt class='head--fixme'>FIXME</dt> <dd class='body--fixme'><p>Document this function</p>
3a44ef2003-01-03Martin Nilsson </dd></dl>
78c3e22003-01-03Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>edit</b></span>
78c3e22003-01-03Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>string</code> <b><span class='method'>edit</span>(</b><code class='datatype'>string</code> <code class='argument'>data</code>, <code class='datatype'>string</code>|<code class='datatype'>void</code> <code class='argument'>local_prompt</code>, <code class='datatype'>array</code>(<code class='datatype'>string</code>)|<code class='datatype'>void</code> <code class='argument'>attrs</code><b>)</b></code></p></dd> <dt class='head--fixme'>FIXME</dt> <dd class='body--fixme'><p>Document this function</p>
78c3e22003-01-03Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>enable_history</b></span>
78c3e22003-01-03Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>enable_history</span>(</b><code class='datatype'>array</code>(<code class='datatype'>string</code>)|<code class='object unresolved'>History</code>|<code class='datatype'>int</code> <code class='argument'>hist</code><b>)</b></code></p></dd> <dt class='head--fixme'>FIXME</dt> <dd class='body--fixme'><p>Document this function</p>
78c3e22003-01-03Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>eof</b></span>
78c3e22003-01-03Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>eof</span>(</b><b>)</b></code></p></dd> <dt class='head--fixme'>FIXME</dt> <dd class='body--fixme'><p>Document this function</p>
78c3e22003-01-03Martin Nilsson </dd></dl>
3a44ef2003-01-03Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>get_history</b></span>
3a44ef2003-01-03Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='object unresolved'>History</code> <b><span class='method'>get_history</span>(</b><b>)</b></code></p></dd> <dt class='head--fixme'>FIXME</dt> <dd class='body--fixme'><p>Document this function</p>
3a44ef2003-01-03Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>get_input_controller</b></span>
3a44ef2003-01-03Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='object unresolved'>InputController</code> <b><span class='method'>get_input_controller</span>(</b><b>)</b></code></p></dd>
3a44ef2003-01-03Martin Nilsson 
c3fe742003-02-05Martin Nilsson <dt class='head--doc'>Description</dt> <dd class='body--doc'><p>get current input control object</p> </dd> <dt class='head--doc'>Returns</dt> <dd class='body--doc'><p>Terminal input controller object</p>
3a44ef2003-01-03Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>get_output_controller</b></span>
3a44ef2003-01-03Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='object unresolved'>OutputController</code> <b><span class='method'>get_output_controller</span>(</b><b>)</b></code></p></dd>
3a44ef2003-01-03Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>get current output control object</p> </dd> <dt class='head--doc'>Returns</dt> <dd class='body--doc'><p>Terminal output controller object</p>
3a44ef2003-01-03Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>get_prompt</b></span>
3a44ef2003-01-03Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>string</code> <b><span class='method'>get_prompt</span>(</b><b>)</b></code></p></dd>
3a44ef2003-01-03Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Return the current prompt string.</p>
3a44ef2003-01-03Martin Nilsson </dd></dl>
c3fe742003-02-05Martin Nilsson 
7867992003-01-03Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>getcursorpos</b></span>
7867992003-01-03Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>int</code> <b><span class='method'>getcursorpos</span>(</b><b>)</b></code></p></dd> <dt class='head--fixme'>FIXME</dt> <dd class='body--fixme'><p>Document this function</p>
7867992003-01-03Martin Nilsson </dd></dl>
3a44ef2003-01-03Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>getmark</b></span>
3a44ef2003-01-03Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>int</code> <b><span class='method'>getmark</span>(</b><b>)</b></code></p></dd> <dt class='head--fixme'>FIXME</dt> <dd class='body--fixme'><p>Document this function</p>
3a44ef2003-01-03Martin Nilsson </dd></dl>
7867992003-01-03Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>gettext</b></span>
7867992003-01-03Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>string</code> <b><span class='method'>gettext</span>(</b><b>)</b></code></p></dd> <dt class='head--fixme'>FIXME</dt> <dd class='body--fixme'><p>Document this function</p>
7867992003-01-03Martin Nilsson </dd></dl>
e8d6742002-12-05H. William Welliver III <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>history</b></span>
e8d6742002-12-05H. William Welliver III </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>history</span>(</b><code class='datatype'>int</code> <code class='argument'>n</code><b>)</b></code></p></dd> <dt class='head--fixme'>FIXME</dt> <dd class='body--fixme'><p>Document this function</p>
e8d6742002-12-05H. William Welliver III </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>insert</b></span>
e8d6742002-12-05H. William Welliver III </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>insert</span>(</b><code class='datatype'>string</code> <code class='argument'>s</code>, <code class='datatype'>int</code> <code class='argument'>p</code><b>)</b></code></p></dd> <dt class='head--fixme'>FIXME</dt> <dd class='body--fixme'><p>Document this function</p>
e8d6742002-12-05H. William Welliver III </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>kill</b></span>
e8d6742002-12-05H. William Welliver III </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>kill</span>(</b><code class='datatype'>int</code> <code class='argument'>p1</code>, <code class='datatype'>int</code> <code class='argument'>p2</code><b>)</b></code></p></dd> <dt class='head--fixme'>FIXME</dt> <dd class='body--fixme'><p>Document this function</p>
e8d6742002-12-05H. William Welliver III </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>kill_ring_yank</b></span>
e8d6742002-12-05H. William Welliver III </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>string</code> <b><span class='method'>kill_ring_yank</span>(</b><b>)</b></code></p></dd>
e8d6742002-12-05H. William Welliver III <dt class='head--fixme'>FIXME</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--fixme'><p>Document this function</p>
e8d6742002-12-05H. William Welliver III </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>list_completions</b></span>
e8d6742002-12-05H. William Welliver III </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>list_completions</span>(</b><code class='datatype'>array</code>(<code class='datatype'>string</code>) <code class='argument'>c</code><b>)</b></code></p></dd>
e8d6742002-12-05H. William Welliver III <dt class='head--fixme'>FIXME</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--fixme'><p>Document this function</p>
e8d6742002-12-05H. William Welliver III </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>message</b></span>
e8d6742002-12-05H. William Welliver III </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>message</span>(</b><code class='datatype'>string</code> <code class='argument'>msg</code><b>)</b></code></p></dd>
e8d6742002-12-05H. William Welliver III  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Print a message to the output device</p>
e8d6742002-12-05H. William Welliver III </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>newline</b></span>
e8d6742002-12-05H. William Welliver III </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>string</code> <b><span class='method'>newline</span>(</b><b>)</b></code></p></dd>
e8d6742002-12-05H. William Welliver III <dt class='head--fixme'>FIXME</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--fixme'><p>Document this function</p>
e8d6742002-12-05H. William Welliver III </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>pointmark</b></span>
e8d6742002-12-05H. William Welliver III </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>array</code>(<code class='datatype'>int</code>) <b><span class='method'>pointmark</span>(</b><b>)</b></code></p></dd>
e8d6742002-12-05H. William Welliver III <dt class='head--fixme'>FIXME</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--fixme'><p>Document this function</p>
e8d6742002-12-05H. William Welliver III </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>read</b></span>
e8d6742002-12-05H. William Welliver III </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>string</code> <b><span class='method'>read</span>(</b><code class='datatype'>string</code>|<code class='datatype'>void</code> <code class='argument'>prompt</code>, <code class='datatype'>array</code>(<code class='datatype'>string</code>)|<code class='datatype'>void</code> <code class='argument'>attrs</code><b>)</b></code></p></dd>
e8d6742002-12-05H. William Welliver III <dt class='head--fixme'>FIXME</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--fixme'><p>Document this function</p>
e8d6742002-12-05H. William Welliver III </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>redisplay</b></span>
e8d6742002-12-05H. William Welliver III </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>redisplay</span>(</b><code class='datatype'>int</code> <code class='argument'>clear</code>, <code class='datatype'>int</code>|<code class='datatype'>void</code> <code class='argument'>nobackup</code><b>)</b></code></p></dd> <dt class='head--fixme'>FIXME</dt> <dd class='body--fixme'><p>Document this function</p>
e8d6742002-12-05H. William Welliver III </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>region</b></span>
e8d6742002-12-05H. William Welliver III </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>string</code> <b><span class='method'>region</span>(</b><code class='datatype'>int</code> ... <code class='argument'>args</code><b>)</b></code></p></dd> <dt class='head--fixme'>FIXME</dt> <dd class='body--fixme'><p>Document this function</p>
e8d6742002-12-05H. William Welliver III </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>set_blocking</b></span>
e8d6742002-12-05H. William Welliver III </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_blocking</span>(</b><b>)</b></code></p></dd>
e8d6742002-12-05H. William Welliver III <dt class='head--fixme'>FIXME</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--fixme'><p>Document this function</p>
e8d6742002-12-05H. William Welliver III </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>set_echo</b></span>
e8d6742002-12-05H. William Welliver III </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_echo</span>(</b><code class='datatype'>int</code> <code class='argument'>onoff</code><b>)</b></code></p></dd> <dt class='head--doc'>Description</dt> <dd class='body--doc'><p>Set text echo on or off.</p> </dd> <dt class='head--doc'><span id='p-onoff'></span>Parameter <code class='parameter'>onoff</code></dt> <dd></dd><dd class='body--doc'><p>1 for echo, 0 for no echo.</p>
e8d6742002-12-05H. William Welliver III </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>set_nonblocking</b></span>
e8d6742002-12-05H. William Welliver III </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_nonblocking</span>(</b><code class='datatype'>function</code>(:<code class='datatype void'>void</code>) <code class='argument'>f</code><b>)</b></code></p></dd>
e8d6742002-12-05H. William Welliver III <dt class='head--fixme'>FIXME</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--fixme'><p>Document this function</p>
e8d6742002-12-05H. William Welliver III </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>set_prompt</b></span>
e8d6742002-12-05H. William Welliver III </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>string</code> <b><span class='method'>set_prompt</span>(</b><code class='datatype'>string</code> <code class='argument'>newp</code>, <code class='datatype'>array</code>(<code class='datatype'>string</code>)|<code class='datatype'>void</code> <code class='argument'>newattrs</code><b>)</b></code></p></dd>
e8d6742002-12-05H. William Welliver III  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Set the prompt string.</p>
e8d6742002-12-05H. William Welliver III </dd>
c3fe742003-02-05Martin Nilsson <dt class='head--doc'><span id='p-newp'></span>Parameter <code class='parameter'>newp</code></dt> <dd></dd><dd class='body--doc'><p>New prompt string</p>
e8d6742002-12-05H. William Welliver III </dd>
c3fe742003-02-05Martin Nilsson <dt class='head--doc'><span id='p-newattrs'></span>Parameter <code class='parameter'>newattrs</code></dt> <dd></dd><dd class='body--doc'><p>Terminal attributes</p>
e8d6742002-12-05H. William Welliver III </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>setcursorpos</b></span>
e8d6742002-12-05H. William Welliver III </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>int</code> <b><span class='method'>setcursorpos</span>(</b><code class='datatype'>int</code> <code class='argument'>p</code><b>)</b></code></p></dd>
e8d6742002-12-05H. William Welliver III <dt class='head--fixme'>FIXME</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--fixme'><p>Document this function</p>
e8d6742002-12-05H. William Welliver III </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>setmark</b></span>
e8d6742002-12-05H. William Welliver III </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>int</code> <b><span class='method'>setmark</span>(</b><code class='datatype'>int</code> <code class='argument'>p</code><b>)</b></code></p></dd>
e8d6742002-12-05H. William Welliver III <dt class='head--fixme'>FIXME</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--fixme'><p>Document this function</p>
e8d6742002-12-05H. William Welliver III </dd></dl>
c3fe742003-02-05Martin Nilsson 
e4e3f32002-04-06Martin Nilsson  <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>write</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>write</span>(</b><code class='datatype'>string</code> <code class='argument'>msg</code>, <code class='datatype'>void</code>|<code class='datatype'>int</code> <code class='argument'>word_wrap</code><b>)</b></code></p></dd> <dt class='head--fixme'>FIXME</dt> <dd class='body--fixme'><p>Document this function</p>
1f918f2002-05-26Martin Nilsson </dd></dl>
c3fe742003-02-05Martin Nilsson </dd></dl><dl><dt><h2 class='header'>Module <b class='ms datatype'>Stdio</b></h2> </dt><dd><dl class='group--doc'> <dt class='head--doc'>Description</dt> <dd class='body--doc'><p>An instance of FILE("stdin"), the standard input stream. Use this when you want to read anything from the standard input. This example will read lines from standard input for as long as there are more lines to read. Each line will then be written to stdout together with the line number. We could use <code>Stdio.stdout.write</code> instead of just <code>write</code>, since they are the same function.</p> </dd> <dt class='head--doc'>Example</dt> <dd class='example'><pre><p>int main() { int line; while(string s=Stdio.stdin.gets()) write(sprintf("%5d: %s\n",line++,s)); }</p> </pre></dd></dl>
9699552002-03-12Martin Nilsson 
5bfef52003-04-01Martin Nilsson <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>
9699552002-03-12Martin Nilsson <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>append_file</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <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>
9699552002-03-12Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Append the string <code>str</code> onto the file <code>filename</code>.</p> <p> For a description of <code>access</code>, see <code>Stdio.File-&gt;open()</code>.</p> </dd> <dt class='head--doc'>Throws</dt> <dd class='body--doc'><p>Throws an error if <code>filename</code> couldn't be opened for writing.</p> </dd> <dt class='head--doc'>Returns</dt> <dd class='body--doc'><p>Returns the number of bytes written.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>write_file()</code>, <code>read_bytes()</code>, <code>Stdio.File()-&gt;open()</code></p>
1f918f2002-05-26Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson 
50af352002-07-15Martin Nilsson 
1f918f2002-05-26Martin Nilsson <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>append_path</b></span>
1f918f2002-05-26Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>string</code> <b><span class='method'>append_path</span>(</b><code class='datatype'>string</code> <code class='argument'>absolute</code>, <code class='datatype'>string</code> ... <code class='argument'>relative</code><b>)</b></code></p></dd>
9699552002-03-12Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Append <code>relative</code> paths to an <code>absolute</code> path and remove any
84ea4e2003-04-07Martin Nilsson  <code class='expr'>"//"</code>, <code class='expr'>"../"</code> or <code class='expr'>"/."</code> to produce a straightforward absolute path as a result.</p> <p> <code class='expr'>"../"</code> is ignorded in the relative paths if it makes the
c3fe742003-02-05Martin Nilsson  created path begin with something else than the absolute path (or so far created path).</p> </dd> <dt class='head--doc'>Note</dt> <dd class='body--doc'><p>Warning: This does not work on NT. (Consider paths like: k:/fnord)</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>combine_path()</code></p>
9699552002-03-12Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>async_cp</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>async_cp</span>(</b><code class='datatype'>string</code> <code class='argument'>from</code>, <code class='datatype'>string</code> <code class='argument'>to</code>, <code class='datatype'>function</code>(<code class='datatype'>int</code>, <code class='datatype'>mixed</code> ... :<code class='datatype'>void</code>) <code class='argument'>callback</code>, <code class='datatype'>mixed</code> ... <code class='argument'>args</code><b>)</b></code></p></dd>
9699552002-03-12Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Copy a file asynchronously.</p> <p> This function is similar to <code>cp()</code>, but works asynchronously.</p> </dd> <dt class='head--doc'><span id='p-from'></span>Parameter <code class='parameter'>from</code></dt> <dd></dd><dd class='body--doc'><p>Name of file to copy.</p> </dd> <dt class='head--doc'><span id='p-to'></span>Parameter <code class='parameter'>to</code></dt> <dd></dd><dd class='body--doc'><p>Name of file to create or replace with a copy of <code>from</code>.</p> </dd> <dt class='head--doc'><span id='p-cb'></span>Parameter <code class='parameter'>cb</code></dt> <dd></dd><dd class='body--doc'><p>Function to be called on completion.
84ea4e2003-04-07Martin Nilsson  The first argument will be <code class='expr'>1</code> on success, and <code class='expr'>0</code> (zero)
c3fe742003-02-05Martin Nilsson  otherwise. The rest of the arguments tp <code>callback</code> are passed verbatim from <code>args</code>.</p> </dd> <dt class='head--doc'><span id='p-args'></span>Parameter <code class='parameter'>args</code></dt> <dd></dd><dd class='body--doc'><p>Extra arguments to pass to <code>callback</code>.</p> </dd> <dt class='head--doc'>Note</dt> <dd class='body--doc'><p>For <code>callback</code> to be called, the backend must be active (ie
84ea4e2003-04-07Martin Nilsson  <code>main()</code> must have returned <code class='expr'>-1</code>).</p>
c3fe742003-02-05Martin Nilsson </dd> <dt class='head--doc'>Bugs</dt> <dd class='body--doc'><p>Currently the file sizes are not compared, so the destination file (<code>to</code>) may be truncated.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>cp()</code>, <code>sendfile()</code></p>
9699552002-03-12Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>exist</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>int</code> <b><span class='method'>exist</span>(</b><code class='datatype'>string</code> <code class='argument'>path</code><b>)</b></code></p></dd>
9699552002-03-12Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Check if a <code>path</code> exists.</p> </dd> <dt class='head--doc'>Returns</dt> <dd class='body--doc'><p>Returns true if the given path exists (is a directory or file), otherwise false.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>is_dir()</code>, <code>is_file()</code>, <code>is_link()</code>, <code>file_stat()</code></p>
9699552002-03-12Martin Nilsson </dd></dl>
1f918f2002-05-26Martin Nilsson 
9699552002-03-12Martin Nilsson  <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>file_equal</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>int</code> <b><span class='method'>file_equal</span>(</b><code class='datatype'>string</code> <code class='argument'>file_1</code>, <code class='datatype'>string</code> <code class='argument'>file_2</code><b>)</b></code></p></dd>
9699552002-03-12Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Returns nonzero if the given paths are files with identical content, returns zero otherwise. Zero is also returned for any sort of I/O error.</p>
9699552002-03-12Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>file_size</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>int</code> <b><span class='method'>file_size</span>(</b><code class='datatype'>string</code> <code class='argument'>filename</code><b>)</b></code></p></dd>
9699552002-03-12Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Give the size of a file. Size -1 indicates that the file either does not exist, or that it is not readable by you. Size -2 indicates that it is a directory.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>file_stat()</code>, <code>write_file()</code>, <code>read_bytes()</code></p>
e4e3f32002-04-06Martin Nilsson </dd></dl>
9699552002-03-12Martin Nilsson 
5bfef52003-04-01Martin Nilsson <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>
9699552002-03-12Martin Nilsson <hr /> <dl class='group--doc'>
c3fe742003-02-05Martin Nilsson <dt class='head--type'><span class='homogen--type'>Inherit</span> <span class='homogen--name'><b>files</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><span class='datatype'>inherit files</span> : <span class='inherit'>files</span></code></p></dd> </dl>
e4e3f32002-04-06Martin Nilsson 
69373f2002-09-12Leif Stensson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>is_dir</b></span>
69373f2002-09-12Leif Stensson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>int</code> <b><span class='method'>is_dir</span>(</b><code class='datatype'>string</code> <code class='argument'>path</code><b>)</b></code></p></dd>
69373f2002-09-12Leif Stensson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Check if a <code>path</code> is a directory.</p> </dd> <dt class='head--doc'>Returns</dt> <dd class='body--doc'><p>Returns true if the given path is a directory, otherwise false.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>exist()</code>, <code>is_file()</code>, <code>is_link()</code>, <code>file_stat()</code></p>
69373f2002-09-12Leif Stensson </dd></dl>
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>is_file</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>int</code> <b><span class='method'>is_file</span>(</b><code class='datatype'>string</code> <code class='argument'>path</code><b>)</b></code></p></dd>
e4e3f32002-04-06Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Check if a <code>path</code> is a file.</p> </dd> <dt class='head--doc'>Returns</dt> <dd class='body--doc'><p>Returns true if the given path is a file, otherwise false.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>exist()</code>, <code>is_dir()</code>, <code>is_link()</code>, <code>file_stat()</code></p>
1f918f2002-05-26Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson 
69373f2002-09-12Leif Stensson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>is_link</b></span>
69373f2002-09-12Leif Stensson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>int</code> <b><span class='method'>is_link</span>(</b><code class='datatype'>string</code> <code class='argument'>path</code><b>)</b></code></p></dd>
69373f2002-09-12Leif Stensson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Check if a <code>path</code> is a symbolic link.</p> </dd> <dt class='head--doc'>Returns</dt> <dd class='body--doc'><p>Returns true if the given path is a symbolic link, otherwise false.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>exist()</code>, <code>is_dir()</code>, <code>is_file()</code>, <code>file_stat()</code></p>
69373f2002-09-12Leif Stensson </dd></dl>
1f918f2002-05-26Martin Nilsson <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>mkdirhier</b></span>
1f918f2002-05-26Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>int</code> <b><span class='method'>mkdirhier</span>(</b><code class='datatype'>string</code> <code class='argument'>pathname</code>, <code class='datatype'>void</code>|<code class='datatype'>int</code> <code class='argument'>mode</code><b>)</b></code></p></dd>
1f918f2002-05-26Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Creates zero or more directories to ensure that the given <code>pathname</code> is a directory.</p> <p> If a <code>mode</code> is given, it's used for the new directories after being &amp;'ed with the current umask (on OS'es that support this).</p> </dd> <dt class='head--doc'>Returns</dt> <dd class='body--doc'><p>Returns zero if it fails and nonzero if it is successful.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>mkdir()</code></p>
9699552002-03-12Martin Nilsson </dd></dl>
1f918f2002-05-26Martin Nilsson 
5bfef52003-04-01Martin Nilsson <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>
9699552002-03-12Martin Nilsson <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>perror</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <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>
9699552002-03-12Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>This function prints a message to stderr along with a description of what went wrong if available. It uses the system errno to find out what went wrong, so it is only applicable to IO errors.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>werror()</code></p>
9699552002-03-12Martin Nilsson </dd></dl>
c3fe742003-02-05Martin Nilsson 
9699552002-03-12Martin Nilsson <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>read_bytes</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>string</code> <b><span class='method'>read_bytes</span>(</b><code class='datatype'>string</code> <code class='argument'>filename</code>, <code class='datatype'>int</code> <code class='argument'>start</code>, <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_bytes</span>(</b><code class='datatype'>string</code> <code class='argument'>filename</code>, <code class='datatype'>int</code> <code class='argument'>start</code><b>)</b></code><br> <code><code class='datatype'>string</code> <b><span class='method'>read_bytes</span>(</b><code class='datatype'>string</code> <code class='argument'>filename</code><b>)</b></code></p></dd>
9699552002-03-12Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Read <code>len</code> number of bytes from the file <code>filename</code> starting at byte <code>start</code>, and return it as a string.</p> <p> If <code>len</code> is omitted, the rest of the file will be returned.</p> <p> If <code>start</code> is also omitted, the entire file will be returned.</p> </dd> <dt class='head--doc'>Throws</dt> <dd class='body--doc'><p>Throws an error if <code>filename</code> isn't a regular file.</p> </dd> <dt class='head--doc'>Returns</dt>
84ea4e2003-04-07Martin Nilsson <dd class='body--doc'><p>Returns <code class='expr'>0</code> (zero) on failure to open <code>filename</code>.</p>
c3fe742003-02-05Martin Nilsson <p> Returns a string with the requested data otherwise.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>read_file</code>, <code>write_file()</code>, <code>append_file()</code></p>
9699552002-03-12Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>read_file</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>string</code> <b><span class='method'>read_file</span>(</b><code class='datatype'>string</code> <code class='argument'>filename</code><b>)</b></code><br> <code><code class='datatype'>string</code> <b><span class='method'>read_file</span>(</b><code class='datatype'>string</code> <code class='argument'>filename</code>, <code class='datatype'>int</code> <code class='argument'>start</code>, <code class='datatype'>int</code> <code class='argument'>len</code><b>)</b></code></p></dd>
9699552002-03-12Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Read <code>len</code> lines from a file <code>filename</code> after skipping <code>start</code> lines and return those lines as a string. If both <code>start</code> and <code>len</code> are omitted the whole file is read.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>read_bytes()</code>, <code>write_file()</code></p>
9699552002-03-12Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>recursive_rm</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>int</code> <b><span class='method'>recursive_rm</span>(</b><code class='datatype'>string</code> <code class='argument'>path</code><b>)</b></code></p></dd>
9699552002-03-12Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Remove a file or directory a directory tree.</p> </dd> <dt class='head--doc'>Returns</dt> <dd class='body--doc'><p>Returns 0 on failure, nonzero otherwise.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>rm</code></p>
9699552002-03-12Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>sendfile</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>object</code> <b><span class='method'>sendfile</span>(</b><code class='datatype'>array</code>(<code class='datatype'>string</code>) <code class='argument'>headers</code>, <code class='object unresolved'>File</code> <code class='argument'>from</code>, <code class='datatype'>int</code> <code class='argument'>offset</code>, <code class='datatype'>int</code> <code class='argument'>len</code>, <code class='datatype'>array</code>(<code class='datatype'>string</code>) <code class='argument'>trailers</code>, <code class='object unresolved'>File</code> <code class='argument'>to</code><b>)</b></code><br> <code><code class='datatype'>object</code> <b><span class='method'>sendfile</span>(</b><code class='datatype'>array</code>(<code class='datatype'>string</code>) <code class='argument'>headers</code>, <code class='object unresolved'>File</code> <code class='argument'>from</code>, <code class='datatype'>int</code> <code class='argument'>offset</code>, <code class='datatype'>int</code> <code class='argument'>len</code>, <code class='datatype'>array</code>(<code class='datatype'>string</code>) <code class='argument'>trailers</code>, <code class='object unresolved'>File</code> <code class='argument'>to</code>, <code class='datatype'>function</code>(<code class='datatype'>int</code>, <code class='datatype'>mixed</code> ... :<code class='datatype'>void</code>) <code class='argument'>callback</code>, <code class='datatype'>mixed</code> ... <code class='argument'>args</code><b>)</b></code></p></dd>
9699552002-03-12Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Sends <code>headers</code> followed by <code>len</code> bytes starting at <code>offset</code> from the file <code>from</code> followed by <code>trailers</code> to the file <code>to</code>. When completed <code>callback</code> will be called with the total number of bytes sent as the first argument, followed by <code>args</code>.</p> <p> Any of <code>headers</code>, <code>from</code> and <code>trailers</code> may be left out
84ea4e2003-04-07Martin Nilsson  by setting them to <code class='expr'>0</code>.</p> <p> Setting <code>offset</code> to <code class='expr'>-1</code> means send from the current position in
c3fe742003-02-05Martin Nilsson  <code>from</code>.</p>
84ea4e2003-04-07Martin Nilsson <p> Setting <code>len</code> to <code class='expr'>-1</code> means send until <code>from</code>'s end of file is
c3fe742003-02-05Martin Nilsson  reached.</p> </dd> <dt class='head--doc'>Note</dt> <dd class='body--doc'><p>The sending is performed asynchronously, and may complete before the function returns.</p> <p> For <code>callback</code> to be called, the backend must be active (ie
84ea4e2003-04-07Martin Nilsson  <code>main()</code> must have returned <code class='expr'>-1</code>).</p>
c3fe742003-02-05Martin Nilsson <p> In some cases, the backend must also be active for any sending to be performed at all.</p> </dd> <dt class='head--doc'>Bugs</dt> <dd class='body--doc'><p>FIXME: Support for timeouts?</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>Stdio.File-&gt;set_nonblocking()</code></p>
9699552002-03-12Martin Nilsson </dd></dl>
1f918f2002-05-26Martin Nilsson 
9699552002-03-12Martin Nilsson <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>simplify_path</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>string</code> <b><span class='method'>simplify_path</span>(</b><code class='datatype'>string</code> <code class='argument'>path</code><b>)</b></code></p></dd>
9699552002-03-12Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Returns a canonic representation of <code>path</code> (without /./, /../, // and similar path segments).</p>
e4e3f32002-04-06Martin Nilsson </dd></dl>
50af352002-07-15Martin Nilsson  <hr /> <dl class='group--doc'>
c3fe742003-02-05Martin Nilsson <dt class='head--type'><span class='homogen--type'>Variable</span> <span class='homogen--name'><b>stderr</b></span>
50af352002-07-15Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='object unresolved'>File</code> Stdio.<b><span class='variable'>stderr</span></b></code></p></dd>
50af352002-07-15Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>An instance of FILE("stderr"), the standard error stream. Use this when you want to output error messages.</p>
50af352002-07-15Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'>
c3fe742003-02-05Martin Nilsson <dt class='head--type'><span class='homogen--type'>Variable</span> <span class='homogen--name'><b>stdout</b></span>
50af352002-07-15Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='object unresolved'>File</code> Stdio.<b><span class='variable'>stdout</span></b></code></p></dd>
50af352002-07-15Martin Nilsson 
e4e3f32002-04-06Martin Nilsson <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>An instance of FILE("stdout"), the standatd output stream. Use this when you want to write anything to the standard output.</p>
9699552002-03-12Martin Nilsson </dd></dl>
50af352002-07-15Martin Nilsson 
9699552002-03-12Martin Nilsson <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>werror</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>void</code> <b><span class='method'>werror</span>(</b><code class='datatype'>string</code> <code class='argument'>s</code><b>)</b></code></p></dd>
1f918f2002-05-26Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Write a message to stderr. Stderr is normally the console, even if the process output has been redirected to a file or pipe.</p>
9699552002-03-12Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>write_file</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>int</code> <b><span class='method'>write_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>
1f918f2002-05-26Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Write the string <code>str</code> onto the file <code>filename</code>. Any existing data in the file is overwritten.</p> <p> For a description of <code>access</code>, see <code>Stdio.File()-&gt;open()</code>.</p>
50af352002-07-15Martin Nilsson </dd>
c3fe742003-02-05Martin Nilsson <dt class='head--doc'>Throws</dt> <dd class='body--doc'><p>Throws an error if <code>filename</code> couldn't be opened for writing.</p>
1f918f2002-05-26Martin Nilsson </dd>
c3fe742003-02-05Martin Nilsson <dt class='head--doc'>Returns</dt> <dd class='body--doc'><p>Returns the number of bytes written.</p>
1f918f2002-05-26Martin Nilsson </dd>
c3fe742003-02-05Martin Nilsson <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>append_file()</code>, <code>read_bytes()</code>, <code>Stdio.File()-&gt;open()</code></p> </dd></dl> <dl><dt><h2 class='header'>Class <b class='ms datatype'>Stdio.BlockFile</b></h2> </dt><dd><dl class='group--doc'> <dt class='head--doc'>Description</dt> <dd class='body--doc'><p>The Stdio.BlockFile API.</p> <p> This class exists purely for typing reasons.</p> <p> Use in types in place of <code>Stdio.File</code> where only blocking I/O is done with the object.</p>
50af352002-07-15Martin Nilsson </dd> <dt class='head--doc'>See also</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p><code>Stream</code>, <code>NonblockingStream</code>, <code>File</code>, <code>FILE</code></p>
e4e3f32002-04-06Martin Nilsson </dd></dl>
9699552002-03-12Martin Nilsson 
c3fe742003-02-05Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Inherit</span> <span class='homogen--name'><b>Stream</b></span> </dt> <dd><p><code><span class='datatype'>inherit Stream</span> : <span class='inherit'>Stream</span></code></p></dd> </dl> </dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>Stdio.FakeFile</b></h2> </dt><dd><dl class='group--doc'> <dt class='head--doc'>Description</dt> <dd class='body--doc'><p>A string wrapper that pretends to be a <code>Stdio.File</code> object.</p> </dd></dl>
e4e3f32002-04-06Martin Nilsson 
47797a2003-03-07Martin Nilsson <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span> <span class='homogen--name'><b>_sizeof</b></span> </dt> <dd><p><code><code class='datatype'>int(0..)</code> <b><span class='method'>sizeof</span>(</b> <span class='class'>Stdio.FakeFile</span> <span class='argument'>arg</span> <b>)</b></code></p></dd> <dt class='head--doc'>Description</dt> <dd class='body--doc'><p>Sizeof on a FakeFile returns the size of its contents.</p> </dd></dl> <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span> <span class='homogen--name'><b>cast</b></span> </dt> <dd><p><code><b>(</b><span class='datatype'>int</span><b>)</b><span class='class'>Stdio.FakeFile</span>()<br><b>(</b><span class='datatype'>float</span><b>)</b><span class='class'>Stdio.FakeFile</span>()<br><b>(</b><span class='datatype'>string</span><b>)</b><span class='class'>Stdio.FakeFile</span>()<br><b>(</b><span class='datatype'>array</span><b>)</b><span class='class'>Stdio.FakeFile</span>()<br><b>(</b><span class='datatype'>mapping</span><b>)</b><span class='class'>Stdio.FakeFile</span>()<br><b>(</b><span class='datatype'>multiset</span><b>)</b><span class='class'>Stdio.FakeFile</span>()</code></p></dd> <dt class='head--doc'>Description</dt> <dd class='body--doc'><p>A FakeFile can be casted to a string.</p> </dd></dl>
e4e3f32002-04-06Martin Nilsson <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>close</b></span>
e4e3f32002-04-06Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>int</code> <b><span class='method'>close</span>(</b><code class='datatype'>void</code>|<code class='datatype'>string</code> <code class='argument'>direction</code><b>)</b></code></p></dd>
9699552002-03-12Martin Nilsson 
c3fe742003-02-05Martin Nilsson <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>Stdio.File()-&gt;close()</code></p>
1f918f2002-05-26Martin Nilsson </dd></dl>
9699552002-03-12Martin Nilsson 
50af352002-07-15Martin Nilsson 
9699552002-03-12Martin Nilsson <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>create</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><span class='object'>Stdio.FakeFile</span> <span class='class'>Stdio.FakeFile</span><b>(</b><code class='datatype'>string</code> <code class='argument'>data</code>, <code class='datatype'>void</code>|<code class='datatype'>string</code> <code class='argument'>type</code>, <code class='datatype'>void</code>|<code class='datatype'>int</code> <code class='argument'>pointer</code><b>)</b></code></p></dd>
9699552002-03-12Martin Nilsson 
c3fe742003-02-05Martin Nilsson <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>Stdio.File()-&gt;create()</code></p>
1f918f2002-05-26Martin Nilsson </dd></dl>
e4e3f32002-04-06Martin Nilsson 
9699552002-03-12Martin Nilsson  <hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>dup</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='object unresolved'>this_program</code> <b><span class='method'>dup</span>(</b><b>)</b></code></p></dd>
9699552002-03-12Martin Nilsson 
c3fe742003-02-05Martin Nilsson <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>Stdio.File()-&gt;dup()</code></p>
9699552002-03-12Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>errno</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>int</code> <b><span class='method'>errno</span>(</b><b>)</b></code></p></dd>
9699552002-03-12Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>Always returns 0.</p> </dd> <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>Stdio.File()-&gt;errno()</code></p>
9699552002-03-12Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'>
c3fe742003-02-05Martin Nilsson <dt class='head--type'><span class='homogen--type'>Constant</span> <span class='homogen--name'><b>is_fake_file</b></span>
1f918f2002-05-26Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='datatype'>constant</code> <code class='datatype'>int</code> Stdio.FakeFile.<code class='constant'>is_fake_file</code></code></p></dd>
1f918f2002-05-26Martin Nilsson  <dt class='head--doc'>Description</dt>
c3fe742003-02-05Martin Nilsson <dd class='body--doc'><p>This constant can be used to distinguish a FakeFile object from a real <code>Stdio.File</code> object.</p>
9699552002-03-12Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>line_iterator</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><code><code class='object unresolved'>String.SplitIterator</code> <b><span class='method'>line_iterator</span>(</b><code class='datatype'>int</code>|<code class='datatype'>void</code> <code class='argument'>trim</code><b>)</b></code></p></dd>
9699552002-03-12Martin Nilsson 
c3fe742003-02-05Martin Nilsson <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>Stdio.File()-&gt;line_iterator()</code></p>
1f918f2002-05-26Martin Nilsson </dd></dl>
9699552002-03-12Martin Nilsson  <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson <span class='homogen--name'><b>peek</b></span>
9699552002-03-12Martin Nilsson </dt>
c3fe742003-02-05Martin Nilsson <dd><p><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='datatype'>void</code> <code class='argument'>timeout</code><b>)</b></code></p></dd>
9699552002-03-12Martin Nilsson 
c3fe742003-02-05Martin Nilsson <dt class='head--doc'>See also</dt> <dd class='body--doc'><p><code>Stdio.File()-&gt;peek()</code></p>
9699552002-03-12Martin Nilsson </dd></dl> <hr /> <dl class='group--doc'>
50af352002-07-15Martin Nilsson <dt class='head--type'><span class='homogen--type'>Method</span>
c3fe742003-02-05Martin Nilsson