autodoc.git/
traditional_manual/
chapter_9.html
Branch:
Tag:
Non-build tags
All tags
No tags
2013-06-14
2013-06-14 09:10:38 by Martin Nilsson <nilsson@opera.com>
aee4dbab17623a8b891442a701360733e964427e (
2070
lines) (+
219
/-
1851
)
[
Show
|
Annotate
]
Branch:
8.0
Move documentation to _Stdio.
22:
<hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>`<<</b></span>
-
</dt>
-
<dd><p><code><code class='object unresolved'>Stdio.File</code> res = <code class='class'>Stdio.File()</code> << <code class='class'>data</code></code><br>
-
<code><code class='object unresolved'>Stdio.File</code> res = <code class='class'>Stdio.File()</code> << <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 is casted to string, and then
-
written to the file.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>Throws an error if not all data could be written.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>write()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>assign</b></span> </dt> <dd><p><code><code class='datatype'>int</code> <b><span class='method'>assign</span>(</b><code class='object unresolved'>File</code>|<code class='object unresolved'>Fd</code> <code class='argument'>o</code><b>)</b></code></p></dd>
136:
<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 is closed. Otherwise only the directions specified is
-
closed.</p>
-
</dd>
-
<dt class='head--doc'>Returns</dt>
-
<dd class='body--doc'><p>Nonzero is returned if the file or stream wasn't open in the
-
specified direction, zero otherwise.</p>
-
</dd>
-
<dt class='head--doc'>Throws</dt>
-
<dd class='body--doc'><p>An exception is thrown if an I/O error occurs.</p>
-
<p> The default behaviour for sockets is typically to flush buffered
-
data in the background, but this can be changed with <code>linger()</code>.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p><code>close()</code> has no effect if this file object has been associated
-
with an already opened file, i.e. if <code>open()</code> was given an
-
integer as the first argument.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>linger()</code>, <code>open()</code>, <code>open_socket()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>connect</b></span> </dt>
-
<dd><p><code><code class='datatype'>bool</code> <b><span class='method'>connect</span>(</b><code class='datatype'>string</code> <code class='argument'>dest_addr</code>, <code class='datatype'>int</code> <code class='argument'>dest_port</code><b>)</b></code><br>
-
<code><code class='datatype'>bool</code> <b><span class='method'>connect</span>(</b><code class='datatype'>string</code> <code class='argument'>dest_addr</code>, <code class='datatype'>int</code> <code class='argument'>dest_port</code>, <code class='datatype'>string</code> <code class='argument'>src_addr</code>, <code class='datatype'>int</code> <code class='argument'>src_port</code><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Open a TCP/IP connection to the specified destination.</p>
-
<p> In nonblocking mode, success is indicated with the write-callback,
-
and failure with the close-callback or the read_oob-callback.</p>
-
</dd>
-
<dt class='head--doc'>Returns</dt>
-
<dd class='body--doc'><p>Returns <code class='expr'>1</code> on success, and <code class='expr'>0</code> on failure.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<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
-
as a connection failure.</p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>connect</b></span>
-
</dt>
+
<dd><p><code><code class='datatype'>int</code> <b><span class='method'>connect</span>(</b><code class='datatype'>string</code> <code class='argument'>host</code>, <code class='datatype'>int</code>|<code class='datatype'>string</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='datatype'>string</code> <code class='argument'>client_port</code><b>)</b></code></p></dd> <dt class='head--doc'>Description</dt>
224:
<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>
-
</dd>
-
<dt class='head--doc'><span id='p-filename'></span>Parameter <code class='parameter'>filename</code></dt>
-
<dd></dd><dd class='body--doc'><p>Filename to create.</p>
-
<p> In nonblocking mode, success is indicated with the write-callback,
-
and failure with the close-callback or the read_oob-callback.</p>
-
</dd>
-
<dt class='head--doc'>Returns</dt>
-
<dd class='body--doc'><p>Returns <code class='expr'>1</code> on success, and <code class='expr'>0</code> on failure.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<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
-
as a connection failure.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p><code>path</code> had a quite restrictive length limit (~100 characters)
-
prior to Pike 7.8.334.</p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>connect_unix</b></span>
-
</dt>
+
<dd><p><code><code class='datatype'>int</code> <b><span class='method'>connect_unix</span>(</b><code class='datatype'>string</code> <code class='argument'>path</code><b>)</b></code></p></dd> <dt class='head--doc'>Description</dt>
308:
<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='datatype'>int</code> <code class='argument'>access</code><b>)</b></code><br>
-
<code><span class='object'>Stdio.File</span> <span class='class'>Stdio.File</span><b>(</b><code class='datatype'>int</code> <code class='argument'>fd</code><b>)</b></code><br>
-
<code><span class='object'>Stdio.File</span> <span class='class'>Stdio.File</span><b>(</b><code class='datatype'>int</code> <code class='argument'>fd</code>, <code class='datatype'>string</code> <code class='argument'>mode</code><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>See <code>open()</code>.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>open()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>dup</b></span> </dt> <dd><p><code><code class='object unresolved'>File</code> <b><span class='method'>dup</span>(</b><b>)</b></code></p></dd>
346:
<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.Fd</code> <b><span class='method'>dup</span>(</b><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Duplicate the file.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>dup2()</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'>Returns</dt>
-
<dd class='body--doc'><p>Returns <code class='expr'>1</code> on success and <code class='expr'>0</code> (zero) on failure.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>In Pike 7.7 and later <code>to</code> need not be open, in which
-
case a new fd is allocated.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>Note also that <code>to</code> is also assigned to the same backend (if any)
-
as this object.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>assign()</code>, <code>dup()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>errno</b></span> </dt> <dd><p><code><code class='datatype'>int</code> <b><span class='method'>errno</span>(</b><b>)</b></code></p></dd>
402:
<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>getxattr</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>string</code> <b><span class='method'>getxattr</span>(</b><code class='datatype'>string</code> <code class='argument'>attr</code><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Return the value of a specified attribute, or 0 if it does not exist</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 calling <code>openpt()</code>, return the
-
filename of the associated pts-file. This function should only be
-
called once.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>This function is only available on some platforms.</p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
+
<dt class='head--type'><span class='homogen--type'>Inherit</span> <span class='homogen--name'><b>Fd</b></span> </dt>
462:
<hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>is_open</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>int</code> <b><span class='method'>is_open</span>(</b><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Returns true if the file is open.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>If the file is a socket that has been closed from the remote side,
-
this function might still return true.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>Most methods can't be called for a file descriptor that isn't
-
open. Notable exceptions <code>errno</code>, <code>mode</code>, and the set and query
-
functions for callbacks and backend.</p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>line_iterator</b></span> </dt> <dd><p><code><code class='object unresolved'>String.SplitIterator</code>|<code class='object unresolved'>LineIterator</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>
497:
<hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>linger</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>bool</code> <b><span class='method'>linger</span>(</b><code class='datatype'>int(-1..65535)</code>|<code class='datatype'>void</code> <code class='argument'>seconds</code><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Set the socket linger behaviour on <code>close()</code>.</p>
-
</dd>
-
<dt class='head--doc'><span id='p-seconds'></span>Parameter <code class='parameter'>seconds</code></dt>
-
<dd></dd><dd class='body--doc'><table class='box'><tr><td><code><code class='key'>-1</code></code></td><td><p>Reset to default behaviour. This typically means that
-
<code>close()</code> will return immediately, but any buffered
-
data will still be sent if possible.</p>
-
</td></tr>
-
<tr><td><code><code class='key'>0</code></code></td><td><p>Terminate the connection immediately on <code>close()</code>,
-
and discard any buffered data.</p>
-
</td></tr>
-
<tr><td><code><code class='key'>(1..65535)</code></code></td><td><p>Have <code>close()</code> wait for at most <code>seconds</code> seconds
-
for any buffered data to be sent after which the
-
connection is terminated.</p>
-
</td></tr>
-
</table>
-
</dd>
-
<dt class='head--doc'>Returns</dt>
-
<dd class='body--doc'><p>Returns <code class='expr'>1</code> on success, and <code class='expr'>0</code> (zero) on failure.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>This operation is only valid on sockets.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>This function was not available in Pike 7.8.775 and earlier.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>close()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>listxattr</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>array</code>(<code class='datatype'>string</code>) <b><span class='method'>listxattr</span>(</b><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Return an array of all extended attributes set on the file</p>
-
</dd></dl>
-
-
-
<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 and capabilities for the file.</p>
-
</dd>
-
<dt class='head--doc'>Returns</dt>
-
<dd class='body--doc'><p>Returns an <code>`|()</code> of the following flags:</p>
-
<table class='box'><tr><td><code><code class='key'>0x1000</code></code></td><td><p><code>FILE_READ</code></p>
-
</td></tr>
-
<tr><td><code><code class='key'>0x2000</code></code></td><td><p><code>FILE_WRITE</code></p>
-
</td></tr>
-
<tr><td><code><code class='key'>0x4000</code></code></td><td><p><code>FILE_APPEND</code></p>
-
</td></tr>
-
<tr><td><code><code class='key'>0x8000</code></code></td><td><p><code>FILE_CREATE</code></p>
-
</td></tr>
-
<tr><td><code><code class='key'>0x0100</code></code></td><td><p><code>FILE_TRUNC</code></p>
-
</td></tr>
-
<tr><td><code><code class='key'>0x0200</code></code></td><td><p><code>FILE_EXCLUSIVE</code></p>
-
</td></tr>
-
<tr><td><code><code class='key'>0x0400</code></code></td><td><p><code>FILE_NONBLOCKING</code></p>
-
</td></tr>
-
<tr><td><code><code class='key'>0x0040</code></code></td><td><p><code>PROP_SEND_FD</code></p>
-
</td></tr>
-
<tr><td><code><code class='key'>0x0010</code></code></td><td><p><code>PROP_BIDIRECTIONAL</code></p>
-
</td></tr>
-
<tr><td><code><code class='key'>0x0008</code></code></td><td><p><code>PROP_BUFFERED</code></p>
-
</td></tr>
-
<tr><td><code><code class='key'>0x0004</code></code></td><td><p><code>PROP_SHUTDOWN</code></p>
-
</td></tr>
-
<tr><td><code><code class='key'>0x0002</code></code></td><td><p><code>PROP_NONBLOCK</code></p>
-
</td></tr>
-
<tr><td><code><code class='key'>0x0001</code></code></td><td><p><code>PROP_IPC</code></p>
-
</td></tr>
-
</table>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>In some versions of Pike 7.7 and 7.8 the <tt>PROP_</tt> flags were
-
filtered from the result.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>open()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>notify</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>void</code> <b><span class='method'>notify</span>(</b><code class='datatype'>void</code>|<code class='datatype'>int</code> <code class='argument'>notification</code>, <code class='datatype'>function</code>(<code class='datatype'>void</code>:<code class='datatype'>void</code>) <code class='argument'>callback</code><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Receive notification when change occur within the fd.
-
To use, create a Stdio.File object of a directory like
-
Stdio.File(".") and then call notify() with the appropriate
-
parameters.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>When a program registers for some notification, only the first notification
-
will be received unless DN_MULTISHOT is specified as part of the
-
notification argument.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>At present, this function is Linux-specific and requires a kernel which
-
supports the F_NOTIFY fcntl() call.</p>
-
</dd>
-
<dt class='head--doc'><span id='p-notification'></span>Parameter <code class='parameter'>notification</code></dt>
-
<dd></dd><dd class='body--doc'><p>What to notify the callback of. See the Stdio.DN_* constants for more
-
information about possible notifications.</p>
-
</dd>
-
<dt class='head--doc'><span id='p-callback'></span>Parameter <code class='parameter'>callback</code></dt>
-
<dd></dd><dd class='body--doc'><p>Function which should be called when notification is received. The
-
function gets the signal used to indicate the notification as its
-
argument and shouldn't return anyting.</p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>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>
682:
<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 use an existing fd.</p>
-
<p> If <code>filename</code> is given, attempt to open the named file. If <code>fd</code>
-
is given instead, it should be the file descriptor for an already
-
opened file, which will then be used by this object.</p>
-
<p> <code>mode</code> describes how the file is opened. It's a case-insensitive
-
string consisting of one or more of the following letters:</p>
-
<dl class='group--doc'><dt>"r"</dt>
-
<dd><p>Open for reading.</p>
-
</dd>
-
<dt>"w"</dt>
-
<dd><p>Open for writing.</p>
-
</dd>
-
<dt>"a"</dt>
-
<dd><p>Append new data to the end.</p>
-
</dd>
-
<dt>"c"</dt>
-
<dd><p>Create the file if it doesn't exist already.</p>
-
</dd>
-
<dt>"t"</dt>
-
<dd><p>Truncate the file to zero length if it already contains data.
-
Use only together with <code class='expr'>"w"</code>.</p>
-
</dd>
-
<dt>"x"</dt>
-
<dd><p>Open exclusively - the open fails if the file already exists.
-
Use only together with <code class='expr'>"c"</code>. Note that it's not safe to
-
assume that this is atomic on some systems.</p>
-
</dd>
-
</dl><p><code>access</code> specifies the permissions to use if a new file is
-
created. It is a UNIX style permission bitfield:</p>
-
<dl class='group--doc'><dt>0400</dt>
-
<dd><p>User has read permission.</p>
-
</dd>
-
<dt>0200</dt>
-
<dd><p>User has write permission.</p>
-
</dd>
-
<dt>0100</dt>
-
<dd><p>User has execute permission.</p>
-
</dd>
-
<dt>0040</dt>
-
<dd><p>Group has read permission.</p>
-
</dd>
-
<dt>0020</dt>
-
<dd><p>Group has write permission.</p>
-
</dd>
-
<dt>0010</dt>
-
<dd><p>Group has execute permission.</p>
-
</dd>
-
<dt>0004</dt>
-
<dd><p>Others have read permission.</p>
-
</dd>
-
<dt>0002</dt>
-
<dd><p>Others have write permission.</p>
-
</dd>
-
<dt>0001</dt>
-
<dd><p>Others have execute permission.</p>
-
</dd>
-
</dl><p>It's system dependent on which of these bits that are actually
-
heeded. If <code>access</code> is not specified, it defaults to
-
<code class='expr'>00666</code>, but note that on UNIX systems it's masked with the
-
process umask before use.</p>
-
</dd>
-
<dt class='head--doc'>Returns</dt>
-
<dd class='body--doc'><p>Returns nonzero on success and <code class='expr'>0</code> (zero) on failure. If
-
there is a failure then <code>errno</code> returns the error code.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>close()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>open_socket</b></span> </dt> <dd><p><code><code class='datatype'>int</code> <b><span class='method'>open_socket</span>(</b><code class='datatype'>int</code>|<code class='datatype'>string</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>, <code class='datatype'>int</code>|<code class='datatype'>string</code>|<code class='datatype'>void</code> <code class='argument'>family_hint</code><b>)</b></code></p></dd>
801:
<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>, <code class='datatype'>int</code>|<code class='datatype'>string</code>|<code class='datatype'>void</code> <code class='argument'>family_hint</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>openat</b></span> </dt> <dd><p><code><code class='object unresolved'>File</code> <b><span class='method'>openat</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>
826:
<hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>openat</b></span>
-
</dt>
-
<dd><p><code><code class='object unresolved'>Stdio.File</code> <b><span class='method'>openat</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='object unresolved'>Stdio.File</code> <b><span class='method'>openat</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></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Open a file relative to an opened directory.</p>
-
</dd>
-
<dt class='head--doc'>Returns</dt>
-
<dd class='body--doc'><p>Returns a new file object on success, and <code class='expr'>0</code> (zero) on failure.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>Not available on all architectures, or in Pike 7.6 and earlier.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>open()</code>, <code>statat()</code>, <code>unlinkat()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>openpt</b></span> </dt> <dd><p><code><code class='datatype'>int</code> <b><span class='method'>openpt</span>(</b><code class='datatype'>string</code> <code class='argument'>mode</code><b>)</b></code></p></dd>
870:
<hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>openpt</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>int</code> <b><span class='method'>openpt</span>(</b><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 the master end of a pseudo-terminal pair.</p>
-
</dd>
-
<dt class='head--doc'>Returns</dt>
-
<dd class='body--doc'><p>This function returns <code class='expr'>1</code> for success, <code class='expr'>0</code> otherwise.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>grantpt()</code></p>
-
</dd></dl>
-
-
-
<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><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>, <code class='datatype'>int</code> <code class='argument'>not_eof</code><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Check if there is data available to read,
-
or wait some time for available data to read.</p>
-
<p> More specifically, a later call to <code>read()</code> will return
-
immediately, either due to data being present, or due to
-
some error (eg if a socket has been closed).</p>
-
</dd>
-
<dt class='head--doc'><span id='p-timeout'></span>Parameter <code class='parameter'>timeout</code></dt>
-
<dd></dd><dd class='body--doc'><p>Timeout in seconds.</p>
-
</dd>
-
<dt class='head--doc'><span id='p-not_eof'></span>Parameter <code class='parameter'>not_eof</code></dt>
-
<dd></dd><dd class='body--doc'><p>Flag for specifying handling of end of file.
-
The following values are currently defined:</p>
-
<table class='box'><tr><td><code><code class='key'>0</code></code></td><td><p>Traditional (and default) behaviour. Return <code class='expr'>1</code>
-
at EOF.</p>
-
</td></tr>
-
<tr><td><code><code class='key'>1</code></code></td><td><p>Regard EOF as an error. Return <code class='expr'>-1</code> and set <code>errno()</code>
-
to return <code class='expr'>EPIPE</code> at EOF.</p>
-
</td></tr>
-
</table>
-
</dd>
-
<dt class='head--doc'>Returns</dt>
-
<dd class='body--doc'><table class='box'><tr><td><code><code class='key'>1</code></code></td><td><p>There is data available to <code>read()</code>, or <code>not_eof</code> is
-
<code class='expr'>0</code> (zero) and we're at EOF. A later call to
-
<code>read()</code> will not block.</p>
-
</td></tr>
-
<tr><td><code><code class='key'>0</code></code></td><td><p>There is no data available (ie timeout).</p>
-
</td></tr>
-
<tr><td><code><code class='key'>-1</code></code></td><td><p>Error condition. The error code returned by <code>errno()</code>
-
has been updated.</p>
-
</td></tr>
-
</table>
-
</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>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>The <code>not_eof</code> parameter was added in Pike 7.7.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>This function was not available on NT in Pike 7.6 and earlier.</p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>pipe</b></span> </dt>
-
<dd><p><code><code class='object unresolved'>Stdio.File</code> <b><span class='method'>pipe</span>(</b><b>)</b></code><br>
-
<code><code class='object unresolved'>Stdio.File</code> <b><span class='method'>pipe</span>(</b><code class='datatype'>int</code> <code class='argument'>flags</code><b>)</b></code></p></dd>
-
</dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>pipe</b></span>
-
</dt>
+
<dd><p><code><code class='object unresolved'>File</code> <b><span class='method'>pipe</span>(</b><code class='datatype'>void</code>|<code class='datatype'>int</code> <code class='argument'>required_properties</code><b>)</b></code></p></dd> <dt class='head--doc'>Description</dt>
1007:
<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>
-
</dd>
-
<dt class='head--doc'><span id='p-local'></span>Parameter <code class='parameter'>local</code></dt>
-
<dd></dd><dd class='body--doc'><p>If the argument <code>local</code> is not specified, or is <code class='expr'>0</code>
-
(zero), the remote end-point is returned. Otherwise, if <code>local</code>
-
is <code class='expr'>1</code>, the local end-point is returned.</p>
-
</dd>
-
<dt class='head--doc'>Returns</dt>
-
<dd class='body--doc'><p>This function returns the address and port of a socket end-point
-
on the form <code class='expr'>"x.x.x.x port"</code> (IPv4) or
-
<code class='expr'>"x:x:x:x:x:x:x:x port"</code> (IPv6). IPv6 addresses
-
may use the contracted syntax.</p>
-
<p> If this file is not a socket, is not connected, or some other
-
error occurs, <code class='expr'>0</code> (zero) is returned and <code>errno()</code> will
-
return the error code.</p>
-
</dd>
-
<dt class='head--doc'>Throws</dt>
-
<dd class='body--doc'><p>An error is thrown if the socket (or file) isn't open.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>connect()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>query_backend</b></span>
-
</dt>
-
<dd><p><code><code class='object unresolved'>Pike.Backend</code> <b><span class='method'>query_backend</span>(</b><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Return the backend used for the callbacks.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>set_backend</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_read_callback</b></span><br> <span class='homogen--type'>Method</span> <span class='homogen--name'><b>query_write_callback</b></span><br>
1107:
<hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>query_fd</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>int</code> <b><span class='method'>query_fd</span>(</b><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Returns the file descriptor number associated with this object.</p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>query_id</b></span> </dt> <dd><p><code><code class='datatype'>mixed</code> <b><span class='method'>query_id</span>(</b><b>)</b></code></p></dd>
1134:
<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 stream.</p>
-
<p> Attempts to read <code>len</code> bytes from the file, and return it as a
-
string. Less than <code>len</code> bytes can be returned if:</p>
-
<ul>
-
<li><p>end-of-file is encountered for a normal file, or</p>
-
</li><li><p>it's a stream that has been closed from the other end, or</p>
-
</li><li><p>it's a stream in nonblocking mode, or</p>
-
</li><li><p>it's a stream and <code>not_all</code> is set, or</p>
-
</li><li><p><code>not_all</code> isn't set and an error occurred (see below).</p>
-
</li></ul><p>If <code>not_all</code> is nonzero, <code>read()</code> does not try its best to read
-
as many bytes as you have asked for, but merely returns as much as
-
the system read function returns. This is mainly useful with
-
stream devices which can return exactly one row or packet at a
-
time. If <code>not_all</code> is used in blocking mode, <code>read()</code> only
-
blocks if there's no data at all available.</p>
-
<p> If something goes wrong and <code>not_all</code> is set, zero is returned.
-
If something goes wrong and <code>not_all</code> is zero or left out, then
-
either zero or a string shorter than <code>len</code> is returned. If the
-
problem persists then a later call to <code>read()</code> fails and returns
-
zero, however.</p>
-
<p> If everything went fine, a call to <code>errno()</code> directly afterwards
-
returns zero. That includes an end due to end-of-file or remote
-
close.</p>
-
<p> If no arguments are given, <code>read()</code> reads to the end of the file
-
or stream.</p>
-
<p> If any file descriptors have been sent by the other side of the
-
stream, <code>receive_fd()</code> will be called once for every sent file
-
descriptor.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>It's not necessary to set <code>not_all</code> to avoid blocking reading
-
when nonblocking mode is used.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>When at the end of a file or stream, repeated calls to <code>read()</code>
-
will return the empty string since it's not considered an error.
-
The empty string is never returned in other cases, unless nonblocking
-
mode is used or <code>len</code> is zero.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>read_oob()</code>, <code>write()</code>, <code>receive_fd()</code>, <code>send_fd()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>read_function</b></span> </dt> <dd><p><code><code class='datatype'>function</code>(:<code class='datatype'>string</code>) <b><span class='method'>read_function</span>(</b><code class='datatype'>int</code> <code class='argument'>nbytes</code><b>)</b></code></p></dd>
1203:
<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>Attempts to read <code>len</code> bytes of out-of-band data from the stream,
-
and returns it as a string. Less than <code>len</code> bytes can be returned
-
if:</p>
-
<ul>
-
<li><p>the stream has been closed from the other end, or</p>
-
</li><li><p>nonblocking mode is used, or</p>
-
</li><li><p><code>not_all</code> is set, or</p>
-
</li><li><p><code>not_all</code> isn't set and an error occurred (see below).</p>
-
</li></ul><p>If <code>not_all</code> is nonzero, <code>read_oob()</code> only returns as many bytes
-
of out-of-band data as are currently available.</p>
-
<p> If something goes wrong and <code>not_all</code> is set, zero is returned.
-
If something goes wrong and <code>not_all</code> is zero or left out, then
-
either zero or a string shorter than <code>len</code> is returned. If the
-
problem persists then a later call to <code>read_oob()</code> fails and
-
returns zero, however.</p>
-
<p> If everything went fine, a call to <code>errno()</code> directly afterwards
-
returns zero. That includes an end due to remote close.</p>
-
<p> If no arguments are given, <code>read_oob()</code> reads to the end of the
-
stream.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>Out-of-band data was not supported in Pike 0.5 and earlier, and
-
not in Pike 0.6 through 7.4 if they were compiled with the
-
option <tt>'--without-oob'</tt>.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>It is not guaranteed that all out-of-band data sent from the
-
other end is received. Most streams only allow for a single byte
-
of out-of-band data at a time.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>It's not necessary to set <code>not_all</code> to avoid blocking reading
-
when nonblocking mode is used.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>When at the end of a file or stream, repeated calls to <code>read()</code>
-
returns the empty string since it's not considered an error. The
-
empty string is never returned in other cases, unless nonblocking
-
mode is used or <code>len</code> is zero.</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>receive_fd</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>void</code> <b><span class='method'>receive_fd</span>(</b><code class='object unresolved'>Stdio.Fd</code> <code class='argument'>fd</code><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Remote file descriptor reception handler.</p>
-
</dd>
-
<dt class='head--doc'><span id='p-fd'></span>Parameter <code class='parameter'>fd</code></dt>
-
<dd></dd><dd class='body--doc'><p>File descriptor received from the remote end of a <code>pipe()</code>.
-
This object has been created by <code>fd_factory()</code>.</p>
-
<p> This function is called from <code>read()</code> when a remote file
-
descriptor has been received over a <code>PROP_SEND_FD</code>
-
capable <code>pipe()</code>.</p>
-
<p> The default implementation is just a prototype.</p>
-
<p> Overload this function to enable reception of
-
remote file descriptors.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>The capability of sending and receiving remote file
-
descriptors is only available on some operating systems.
-
This capability is indicated by the precence of <code>__HAVE_SEND_FD__</code>.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>send_fd()</code>, <code>read()</code>, <code>fd_factory()</code>, <code>__HAVE_SEND_FD__</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>release_fd</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>int</code> <b><span class='method'>release_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, in
-
addition to releasing it so that this object behaves as if closed.
-
Other settings like callbacks and backend remain intact.
-
<code>take_fd</code> can later be used to reinstate the file descriptor so
-
that the state is restored.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>query_fd()</code>, <code>take_fd()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>removexattr</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>void</code> <b><span class='method'>removexattr</span>(</b><code class='datatype'>string</code> <code class='argument'>attr</code><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Remove the specified extended attribute.</p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>seek</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>int</code> <b><span class='method'>seek</span>(</b><code class='datatype'>int</code> <code class='argument'>pos</code><b>)</b></code><br>
-
<code><code class='datatype'>int</code> <b><span class='method'>seek</span>(</b><code class='datatype'>int</code> <code class='argument'>unit</code>, <code class='datatype'>int</code> <code class='argument'>mult</code><b>)</b></code><br>
-
<code><code class='datatype'>int</code> <b><span class='method'>seek</span>(</b><code class='datatype'>int</code> <code class='argument'>unit</code>, <code class='datatype'>int</code> <code class='argument'>mult</code>, <code class='datatype'>int</code> <code class='argument'>add</code><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Seek to a specified offset in a file.</p>
-
<p> If <code>mult</code> or <code>add</code> are specified, <code>pos</code> is calculated as
-
<code class='expr'><code>pos</code> = <code>unit</code>*<code>mult</code> + <code>add</code></code>.</p>
-
<p> If <code>pos</code> is negative then it is relative to the end of the file,
-
otherwise it's an absolute offset from the start of the file.</p>
-
</dd>
-
<dt class='head--doc'>Returns</dt>
-
<dd class='body--doc'><p>Returns the new offset, or <code class='expr'>-1</code> on failure.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>The arguments <code>mult</code> and <code>add</code> are considered obsolete, and
-
should not be used.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>tell()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>send_fd</b></span> </dt>
-
<dd><p><code><code class='datatype'>void</code> <b><span class='method'>send_fd</span>(</b><code class='object unresolved'>Stdio.Fd</code> <code class='argument'>fd</code><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Queues an open file descriptor for sending to the other end of a stream.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>The actual sending is performed at the next successful call
-
to <code>write()</code>, this is due to limitations in the system calls.
-
This means that it isn't possible to send a file descriptor
-
without also sending some in-band data.</p>
-
<p> This operation is only supported on <code>pipe()</code>'s created with
-
<code>PROP_SEND_FD</code>.</p>
-
<p> This function is not available on all operating systems, check
-
for <code>__HAVE_SEND_FD__</code>.</p>
-
<p> The queue is emptied on successful <code>write()</code> and when the
-
write direction is <code>close()</code>'d.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>receive_fd()</code>, <code>write()</code>, <code>pipe()</code>, <code>read()</code>, <code>__HAVE_SEND_FD__</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>send_fd</b></span>
-
</dt>
+
<dd><p><code><code class='datatype'>bool</code> <b><span class='method'>send_fd</span>(</b><code class='object unresolved'>File</code>|<code class='object unresolved'>Fd</code> <code class='argument'>file</code><b>)</b></code></p></dd> </dl>
1383:
<hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>set_backend</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_backend</span>(</b><code class='object unresolved'>Pike.Backend</code> <code class='argument'>backend</code><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Set the backend used for the callbacks.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>The backend keeps a reference to this object only when it is in
-
callback mode. So if this object hasn't got any active callbacks
-
and it runs out of other references, it will still be destructed
-
quickly (after closing, if necessary).</p>
-
<p> Also, this object does not keep a reference to the backend.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>query_backend</code>, <code>set_nonblocking</code>, <code>set_read_callback</code>, <code>set_write_callback</code>, <code>set_fs_event_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>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>
1433:
<hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>set_blocking</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_blocking</span>(</b><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Sets this file to blocking operation.</p>
-
<p> This is the inverse operation of <code>set_nonblocking()</code>.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>set_nonblocking()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>set_nonblocking_keep_callbacks</b></span><br> <span class='homogen--type'>Method</span> <span class='homogen--name'><b>set_blocking_keep_callbacks</b></span><br>
1468:
<hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>set_buffer</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_buffer</span>(</b><code class='datatype'>int</code> <code class='argument'>bufsize</code>, <code class='datatype'>string</code> <code class='argument'>mode</code><b>)</b></code><br>
-
<code><code class='datatype'>void</code> <b><span class='method'>set_buffer</span>(</b><code class='datatype'>int</code> <code class='argument'>bufsize</code><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Set internal socket buffer.</p>
-
<p> This function sets the internal buffer size of a socket or stream.</p>
-
<p> The second argument allows you to set the read or write buffer by
-
specifying <code class='expr'>"r"</code> or <code class='expr'>"w"</code>.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>It is not guaranteed that this function actually does anything,
-
but it certainly helps to increase data transfer speed when it does.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>open_socket()</code>, <code>accept()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>set_callbacks</b></span> </dt> <dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_callbacks</span>(</b><code class='datatype'>void</code>|<code class='datatype'>function</code>(<code class='datatype'>mixed</code>, <code class='datatype'>string</code>:<code class='datatype'>int</code>) <code class='argument'>read_cb</code>, <code class='datatype'>void</code>|<code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>int</code>) <code class='argument'>write_cb</code>, <code class='datatype'>void</code>|<code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>int</code>) <code class='argument'>close_cb</code>, <code class='datatype'>void</code>|<code class='datatype'>function</code>(<code class='datatype'>mixed</code>, <code class='datatype'>string</code>:<code class='datatype'>int</code>) <code class='argument'>read_oob_cb</code>, <code class='datatype'>void</code>|<code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>int</code>) <code class='argument'>write_oob_cb</code><b>)</b></code></p></dd>
1660:
<hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>set_close_on_exec</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_close_on_exec</span>(</b><code class='datatype'>bool</code> <code class='argument'>yes_no</code><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Marks the file as to be closed in spawned processes.</p>
-
<p> This function determines whether this file will be closed when
-
calling exec().</p>
-
<p> Default is that the file WILL be closed on exec except for
-
stdin, stdout and stderr.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>Process.create_process()</code>, <code>exec()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>set_id</b></span> </dt> <dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_id</span>(</b><code class='datatype'>mixed</code> <code class='argument'>id</code><b>)</b></code></p></dd>
1698:
<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'>Note</dt>
-
<dd class='body--doc'><p>Nonblocking operation is not supported on all Stdio.File objects.
-
Notably it is not guaranteed to be supported on objects returned
-
by <code>pipe()</code> unless <code>PROP_NONBLOCK</code> was specified in the call
-
to <code>pipe()</code>.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>set_blocking()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>set_nonblocking</b></span>
-
</dt>
+
<dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_nonblocking</span>(</b><code class='datatype'>function</code>(<code class='datatype'>mixed</code>, <code class='datatype'>string</code>:<code class='datatype'>int</code>) <code class='argument'>read_callback</code>, <code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>int</code>) <code class='argument'>write_callback</code>, <code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>int</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'>int</code>) <code class='argument'>read_callback</code>, <code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>int</code>) <code class='argument'>write_callback</code>, <code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>int</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'>int</code>) <code class='argument'>read_oob_callback</code>, <code class='datatype'>function</code>(<code class='datatype'>mixed</code>:<code class='datatype'>int</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>
1763:
<hr /> <dl class='group--doc'> <dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>setxattr</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>void</code> <b><span class='method'>setxattr</span>(</b><code class='datatype'>string</code> <code class='argument'>attr</code>, <code class='datatype'>string</code> <code class='argument'>value</code>, <code class='datatype'>int</code> <code class='argument'>flags</code><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Set the attribute <code>attr</code> to the value <code>value</code>.</p>
-
<p> The flags parameter can be used to refine the semantics of the operation. </p>
-
<p> <code>Stdio.XATTR_CREATE</code> specifies a pure create, which
-
fails if the named attribute exists already. </p>
-
<p> <code>Stdio.XATTR_REPLACE</code> specifies a pure replace operation, which
-
fails if the named attribute does not already exist.</p>
-
<p> By default (no flags), the extended attribute will be created if need be,
-
or will simply replace the value if the attribute exists.</p>
-
</dd>
-
<dt class='head--doc'>Returns</dt>
-
<dd class='body--doc'><p>1 if successful, 0 otherwise, setting errno.</p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>stat</b></span>
-
</dt>
-
<dd><p><code><code class='object unresolved'>Stat</code> <b><span class='method'>stat</span>(</b><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Get status for an open file.</p>
-
<p> This function returns the same information as the function
-
<code>file_stat()</code>, but for the file it is called in. If file is not
-
an open file, <code class='expr'>0</code> (zero) is 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>, <code>statat()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>statat</b></span>
-
</dt>
-
<dd><p><code><code class='object unresolved'>Stat</code> <b><span class='method'>statat</span>(</b><code class='datatype'>string</code> <code class='argument'>path</code>, <code class='datatype'>void</code>|<code class='datatype'>bool</code> <code class='argument'>symlink</code><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Get status for a file relative an open directory.</p>
-
<p> This function returns the same information as the function
-
<code>file_stat()</code>, but relative to the file it is called in. If file is not
-
an open file, <code class='expr'>0</code> (zero) is 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>Not available on all architectures, or in Pike 7.6 and earlier.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>file_stat()</code>, <code>stat()</code>, <code>openat()</code>, <code>unlinkat()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>sync</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>bool</code> <b><span class='method'>sync</span>(</b><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Flush buffers to disk.</p>
-
</dd>
-
<dt class='head--doc'>Returns</dt>
-
<dd class='body--doc'><p>Returns <code class='expr'>0</code> (zero) and sets errno on failure.</p>
-
<p> Returns <code class='expr'>1</code> on success.</p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>take_fd</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>void</code> <b><span class='method'>take_fd</span>(</b><code class='datatype'>int</code> <code class='argument'>fd</code><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Rehooks the given file descriptor number to be associated with
-
this object. As opposed to using <code>open</code> with a file descriptor
-
number, it will be closed by this object upon destruct or when
-
<code>close</code> is called.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>release_fd()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>tcgetattr</b></span><br> <span class='homogen--type'>Method</span> <span class='homogen--name'><b>tcsetattr</b></span><br>
1933:
<dd class='body--doc'><p>Terminal rows and columns setting by <code>tcsetattr()</code> is not currently supported.</p> </dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>tell</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>int</code> <b><span class='method'>tell</span>(</b><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Returns the current offset in the file.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>seek()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>truncate</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>bool</code> <b><span class='method'>truncate</span>(</b><code class='datatype'>int</code> <code class='argument'>length</code><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Truncate a file.</p>
-
<p> Truncates the file to the specified length <code>length</code>.</p>
-
</dd>
-
<dt class='head--doc'>Returns</dt>
-
<dd class='body--doc'><p>Returns <code class='expr'>1</code> on success, and <code class='expr'>0</code> (zero) on failure.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>open()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>trylock</b></span>
-
</dt>
-
<dd><p><code><code class='object unresolved'>Stdio.FileLockKey</code> <b><span class='method'>trylock</span>(</b><b>)</b></code><br>
-
<code><code class='object unresolved'>Stdio.FileLockKey</code> <b><span class='method'>trylock</span>(</b><code class='datatype'>bool</code> <code class='argument'>is_recursive</code><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Attempts to place a file lock on this file.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>lock()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>unlinkat</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>int</code> <b><span class='method'>unlinkat</span>(</b><code class='datatype'>string</code> <code class='argument'>f</code><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Remove a file or directory relative to an open file.</p>
-
</dd>
-
<dt class='head--doc'>Returns</dt>
-
<dd class='body--doc'><p>Returns <code class='expr'>0</code> (zero) on failure, <code class='expr'>1</code> otherwise.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>rm()</code>, <code>openat()</code>, <code>statat()</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. It can be less than the size of the given data if</p>
-
<ul>
-
<li><p>some data was written successfully and then something went
-
wrong, or</p>
-
</li><li><p>nonblocking mode is used and not all data could be written
-
without blocking.</p>
-
</li></ul><p>-1 is returned if something went wrong and no bytes were written.
-
If only some data was written due to an error and that error
-
persists, then a later call to <code>write()</code> fails and returns -1.</p>
-
<p> If everything went fine, a call to <code>errno()</code> directly afterwards
-
returns zero.</p>
-
<p> If <code>data</code> is an array of strings, they are written in sequence.</p>
-
<p> If more than one argument is given, <code>sprintf()</code> is used to format
-
them using <code>format</code>. If <code>format</code> is an array, the strings in it
-
are concatenated and the result is used as format string.</p>
-
<p> If there are any file descriptors that have been queued for sending
-
(with <code>send_fd()</code>), they will be sent.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>Writing of wide strings is not supported. You have to encode the
-
data somehow, e.g. with <code>string_to_utf8</code> or with one of the
-
charsets supported by <code>Locale.Charset.encoder</code>.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>read()</code>, <code>write_oob()</code>, <code>send_fd()</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. It can be less than the size of the
-
given data if some data was written successfully and then
-
something went wrong.</p>
-
<p> -1 is returned if something went wrong and no bytes were written.
-
If only some data was written due to an error and that error
-
persists, then a later call to <code>write_oob()</code> fails and returns
-
-1.</p>
-
<p> If everything went fine, a call to <code>errno()</code> directly afterwards
-
returns zero.</p>
-
<p> If more than one argument is given, <code>sprintf()</code> is used to format
-
them.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>Out-of-band data was not supported in Pike 0.5 and earlier, and
-
not in Pike 0.6 through 7.4 if they were compiled with the
-
option <tt>'--without-oob'</tt>.</p>
-
</dd>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>It is not guaranteed that all out-of-band data sent from the
-
other end is received. Most streams only allow for a single byte
-
of out-of-band data at a time. Some streams sends the rest of
-
the data as ordinary data.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>read_oob()</code>, <code>write()</code></p>
-
</dd></dl>
+
</dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>Stdio.FILE</b></h2> </dt><dd><dl class='group--doc'> <dt class='head--doc'>Description</dt>
4419:
<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>NOTE_ATTRIB</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>constant</code> <code class='datatype'>int</code> Stdio.<code class='constant'>NOTE_ATTRIB</code></code></p></dd>
-
</dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Constant</span>
-
<span class='homogen--name'><b>NOTE_DELETE</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>constant</code> <code class='datatype'>int</code> Stdio.<code class='constant'>NOTE_DELETE</code></code></p></dd>
-
</dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Constant</span>
-
<span class='homogen--name'><b>NOTE_EXTEND</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>constant</code> <code class='datatype'>int</code> Stdio.<code class='constant'>NOTE_EXTEND</code></code></p></dd>
-
</dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Constant</span>
-
<span class='homogen--name'><b>NOTE_LINK</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>constant</code> <code class='datatype'>int</code> Stdio.<code class='constant'>NOTE_LINK</code></code></p></dd>
-
</dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Constant</span>
-
<span class='homogen--name'><b>NOTE_RENAME</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>constant</code> <code class='datatype'>int</code> Stdio.<code class='constant'>NOTE_RENAME</code></code></p></dd>
-
</dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Constant</span>
-
<span class='homogen--name'><b>NOTE_REVOKE</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>constant</code> <code class='datatype'>int</code> Stdio.<code class='constant'>NOTE_REVOKE</code></code></p></dd>
-
</dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Constant</span>
-
<span class='homogen--name'><b>NOTE_WRITE</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>constant</code> <code class='datatype'>int</code> Stdio.<code class='constant'>NOTE_WRITE</code></code></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> <code class='datatype'>int</code> Stdio.<code class='constant'>PROP_BIDIRECTIONAL</code></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>The file is bi-directional.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>Stdio.File()->pipe()</code></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> <code class='datatype'>int</code> Stdio.<code class='constant'>PROP_BUFFERED</code></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>The file is buffered (usually 4KB).</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>Stdio.File()->pipe()</code></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> <code class='datatype'>int</code> Stdio.<code class='constant'>PROP_IPC</code></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>The file may be used for inter process communication.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>Stdio.File()->pipe()</code></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> <code class='datatype'>int</code> Stdio.<code class='constant'>PROP_NONBLOCK</code></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>The file supports nonblocking I/O.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>Stdio.File()->pipe()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Constant</span>
-
<span class='homogen--name'><b>PROP_REVERSE</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>constant</code> <code class='datatype'>int</code> Stdio.<code class='constant'>PROP_REVERSE</code></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Request reversed operation.</p>
-
<p> Used as argument to <code>Stdio.File()->pipe()</code>, when
-
<code>PROP_BIDIRECTIONAL</code> hasn't been specified, to
-
request the direction of the resulting pipe to
-
reversed.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>Stdio.File()->pipe()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Constant</span>
-
<span class='homogen--name'><b>PROP_SEND_FD</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>constant</code> <code class='datatype'>int</code> Stdio.<code class='constant'>PROP_SEND_FD</code></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>The <code>Stdio.File</code> object might support the <code>Stdio.File()->send_fd()</code>
-
operation.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>Stdio.File()->pipe()</code>, <code>Stdio.File()->send_fd()</code>,
-
<code>Stdio.File()->receive_fd()</code></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> <code class='datatype'>int</code> Stdio.<code class='constant'>PROP_SHUTDOWN</code></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>The file supports shutting down transmission in either
-
direction.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>Stdio.File()->close()</code>, <code>Stdio.File()->pipe()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Constant</span>
+
<span class='homogen--name'><b>TCSADRAIN</b></span> </dt> <dd><p><code><code class='datatype'>constant</code> <code class='datatype'>string</code> Stdio.<code class='constant'>TCSADRAIN</code></code></p></dd>
4726:
<hr /> <dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Constant</span>
-
<span class='homogen--name'><b>XATTR_CREATE</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>constant</code> Stdio.<code class='constant'>XATTR_CREATE</code></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Used by <code>setxattr</code> function and method to signify a pure
-
create, which will fail if the attribute already exists.</p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Constant</span>
-
<span class='homogen--name'><b>XATTR_REPLACE</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>constant</code> Stdio.<code class='constant'>XATTR_REPLACE</code></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Used by <code>setxattr</code> function and method to signify a replace,
-
which will fail the the attribute does not already exists.</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>
-
<dt class='head--doc'>Note</dt>
-
<dd class='body--doc'><p>In Pike 7.5 and later OOB operations are always present.</p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Constant</span>
-
<span class='homogen--name'><b>__HAVE_SEND_FD__</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>constant</code> Stdio.<code class='constant'>__HAVE_SEND_FD__</code></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Support for sending of file descriptors over
-
<code>Stdio.File()->pipe()</code> objects with <code>PROP_SEND_FD</code>
-
capability is supported.</p>
-
</dd>
-
<dt class='head--doc'>See also</dt>
-
<dd class='body--doc'><p><code>Stdio.File()->send_fd()</code>, <code>Stdio.File()->receive_fd()</code>,
-
<code>Stdio.File()->read()</code>, <code>Stdio.File()->write()</code>,
-
<code>Stdio.File()->pipe()</code></p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Constant</span>
-
<span class='homogen--name'><b>__OOB__</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>constant</code> Stdio.<code class='constant'>__OOB__</code></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Implementation level of nonblocking I/O OOB support.</p>
-
<table class='box'><tr><td><code><code class='key'>0</code></code></td><td><p>Nonblocking OOB support is not supported.</p>
-
</td></tr>
-
<tr><td><code><code class='key'>1</code></code></td><td><p>Nonblocking OOB works a little.</p>
-
</td></tr>
-
<tr><td><code><code class='key'>2</code></code></td><td><p>Nonblocking OOB almost works.</p>
-
</td></tr>
-
<tr><td><code><code class='key'>3</code></code></td><td><p>Nonblocking OOB works as intended.</p>
-
</td></tr>
-
<tr><td><code><code class='key'>-1</code></code></td><td><p>Unknown level of nonblocking OOB support.</p>
-
</td></tr>
-
</table><p>This constant only exists when OOB operations are
-
available, i.e. when <code>__HAVE_OOB__</code> is 1.</p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
+
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>_sprintf</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>string</code> <b><span class='method'>_sprintf</span>(</b><code class='datatype'>int</code> <code class='argument'>type</code>, <code class='datatype'>void</code>|<code class='datatype'>mapping</code> <code class='argument'>flags</code><b>)</b></code></p></dd>
-
</dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
+
<span class='homogen--name'><b>append_file</b></span> </dt> <dd><p><code><code class='datatype'>int</code> <b><span class='method'>append_file</span>(</b><code class='datatype'>string</code> <code class='argument'>filename</code>, <code class='datatype'>string</code> <code class='argument'>str</code>, <code class='datatype'>int</code>|<code class='datatype'>void</code> <code class='argument'>access</code><b>)</b></code></p></dd>
5013:
<hr /> <dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>get_all_active_fd</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>array</code>(<code class='datatype'>int</code>) <b><span class='method'>get_all_active_fd</span>(</b><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Returns the id of all the active file descriptors.</p>
-
</dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
-
<dt class='head--type'><span class='homogen--type'>Method</span>
-
<span class='homogen--name'><b>gethostip</b></span>
-
</dt>
-
<dd><p><code><code class='datatype'>mapping</code>(<code class='datatype'>string</code>:<code class='datatype'>mapping</code>) <b><span class='method'>gethostip</span>(</b><b>)</b></code></p></dd>
-
-
<dt class='head--doc'>Description</dt>
-
<dd class='body--doc'><p>Returns the IP addresses of the host.</p>
-
</dd>
-
<dt class='head--doc'>Returns</dt>
-
<dd class='body--doc'><p>Returns a mapping that maps interface name to a mapping with
-
more information about that interface. That information mapping
-
looks as follows.</p>
-
<table class='box'><tr><td><code><code class='key'>"ips"</code> : <code class='datatype'>array</code>(<code class='datatype'>string</code>)</code></td><td><p>A list of all IP addresses bound to this interface.</p>
-
</td></tr>
-
</table></dd></dl>
-
-
-
<hr />
-
<dl class='group--doc'>
+
<dt class='head--type'><span class='homogen--type'>Inherit</span> <span class='homogen--name'><b>_Stdio</b></span> </dt>