Files
metasploit-gs/api/Rex/Post/IO.html
T
jenkins-metasploit c3f5bd3de2 Reboot gh-pages
2026-05-08 17:08:43 +00:00

4527 lines
79 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Class: Rex::Post::IO
&mdash; Documentation by YARD 0.9.37
</title>
<link rel="stylesheet" href="../../css/style.css" type="text/css" />
<link rel="stylesheet" href="../../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "Rex::Post::IO";
relpath = '../../';
</script>
<script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../../class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../../_index.html">Index (I)</a> &raquo;
<span class='title'><span class='object_link'><a href="../../Rex.html" title="Rex (module)">Rex</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Post.html" title="Rex::Post (module)">Post</a></span></span>
&raquo;
<span class="title">IO</span>
</div>
<div id="search">
<a class="full_list_link" id="class_list_link"
href="../../class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Class: Rex::Post::IO
</h1>
<div class="box_info">
<dl>
<dt>Inherits:</dt>
<dd>
<span class="inheritName">Object</span>
<ul class="fullTree">
<li>Object</li>
<li class="next">Rex::Post::IO</li>
</ul>
<a href="#" class="inheritanceTree">show all</a>
</dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>lib/rex/post/io.rb</dd>
</dl>
</div>
<h2>Overview</h2><div class="docstring">
<div class="discussion">
<p>Base IO class that is modeled after the ruby IO class.</p>
<p>This is an abstract base class that defines the interface for post-exploitation I/O operations. Subclasses must implement the actual I/O functionality.</p>
</div>
</div>
<div class="tags">
</div><div id="subclasses">
<h2>Direct Known Subclasses</h2>
<p class="children"><span class='object_link'><a href="Meterpreter/Extensions/Stdapi/Fs/IO.html" title="Rex::Post::Meterpreter::Extensions::Stdapi::Fs::IO (class)">Meterpreter::Extensions::Stdapi::Fs::IO</a></span></p>
</div>
<h2>Instance Attribute Summary <small><a href="#" class="summary_toggle">collapse</a></small></h2>
<ul class="summary">
<li class="protected ">
<span class="summary_signature">
<a href="#filed-instance_method" title="#filed (instance method)">#<strong>filed</strong> &#x21d2; Object </a>
</span>
<span class="note title protected">protected</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the value of attribute filed.</p>
</div></span>
</li>
<li class="protected ">
<span class="summary_signature">
<a href="#mode-instance_method" title="#mode (instance method)">#<strong>mode</strong> &#x21d2; Object </a>
</span>
<span class="note title protected">protected</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the value of attribute mode.</p>
</div></span>
</li>
</ul>
<h2>
Instance Method Summary
<small><a href="#" class="summary_toggle">collapse</a></small>
</h2>
<ul class="summary">
<li class="public ">
<span class="summary_signature">
<a href="#binmode-instance_method" title="#binmode (instance method)">#<strong>binmode</strong> &#x21d2; IO </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Sets the stream to binary mode.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#close-instance_method" title="#close (instance method)">#<strong>close</strong> &#x21d2; nil </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Closes the I/O stream.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#close_read-instance_method" title="#close_read (instance method)">#<strong>close_read</strong> &#x21d2; nil </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Closes the read end of a duplex I/O stream.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#close_write-instance_method" title="#close_write (instance method)">#<strong>close_write</strong> &#x21d2; nil </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Closes the write end of a duplex I/O stream.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#closed%3F-instance_method" title="#closed? (instance method)">#<strong>closed?</strong> &#x21d2; Boolean </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Checks if the I/O stream is closed.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#each-instance_method" title="#each (instance method)">#<strong>each</strong>(sep = $/) {|String| ... } &#x21d2; void </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Iterates over each line in the stream.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#each_byte-instance_method" title="#each_byte (instance method)">#<strong>each_byte</strong> {|Integer| ... } &#x21d2; void </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Iterates over each byte in the stream.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#each_line-instance_method" title="#each_line (instance method)">#<strong>each_line</strong>(sep = $/) {|String| ... } &#x21d2; void </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Alias for <span class='object_link'><a href="#each-instance_method" title="Rex::Post::IO#each (method)">#each</a></span>.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#eof-instance_method" title="#eof (instance method)">#<strong>eof</strong> &#x21d2; Boolean </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Checks if end of file has been reached.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#eof%3F-instance_method" title="#eof? (instance method)">#<strong>eof?</strong> &#x21d2; Boolean </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Checks if the end of file has been reached.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#fcntl-instance_method" title="#fcntl (instance method)">#<strong>fcntl</strong>(cmd, arg) &#x21d2; Integer </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Performs low-level file control operation.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#flush-instance_method" title="#flush (instance method)">#<strong>flush</strong> &#x21d2; IO </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Flushes buffered data to the underlying I/O stream.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#fsync-instance_method" title="#fsync (instance method)">#<strong>fsync</strong> &#x21d2; 0 </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Synchronizes all buffered data with the storage device.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#getc-instance_method" title="#getc (instance method)">#<strong>getc</strong> &#x21d2; Integer<sup>?</sup> </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Reads a single character from the stream.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#gets-instance_method" title="#gets (instance method)">#<strong>gets</strong>(sep = $/) &#x21d2; String<sup>?</sup> </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Reads the next line from the stream.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#ioctl-instance_method" title="#ioctl (instance method)">#<strong>ioctl</strong>(cmd, arg) &#x21d2; Integer </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Performs low-level I/O control operation.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#isatty-instance_method" title="#isatty (instance method)">#<strong>isatty</strong> &#x21d2; Boolean </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Checks if the stream is associated with a terminal device.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#lineno-instance_method" title="#lineno (instance method)">#<strong>lineno</strong> &#x21d2; Integer </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Gets the current line number.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#pos-instance_method" title="#pos (instance method)">#<strong>pos</strong> &#x21d2; Integer </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Gets the current file position.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#print-instance_method" title="#print (instance method)">#<strong>print</strong> &#x21d2; Integer </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Writes a string to the stream.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#printf-instance_method" title="#printf (instance method)">#<strong>printf</strong>(fmt, *args) &#x21d2; nil </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Writes a formatted string to the stream.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#putc-instance_method" title="#putc (instance method)">#<strong>putc</strong>(obj) &#x21d2; Integer </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Writes a character to the stream.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#puts-instance_method" title="#puts (instance method)">#<strong>puts</strong>(obj) &#x21d2; nil </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Writes a string followed by newline to the stream.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#read-instance_method" title="#read (instance method)">#<strong>read</strong>(length = nil, buffer = nil) &#x21d2; String<sup>?</sup> </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Reads data from the stream.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#readchar-instance_method" title="#readchar (instance method)">#<strong>readchar</strong> &#x21d2; String<sup>?</sup> </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Reads a single character as a string.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#readline-instance_method" title="#readline (instance method)">#<strong>readline</strong>(sep = $/) &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Reads the next line from the stream.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#readlines-instance_method" title="#readlines (instance method)">#<strong>readlines</strong>(sep = $/) &#x21d2; Array&lt;String&gt; </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Reads all lines from the stream into an array.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#rewind-instance_method" title="#rewind (instance method)">#<strong>rewind</strong> &#x21d2; 0 </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Repositions the stream to the beginning.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#seek-instance_method" title="#seek (instance method)">#<strong>seek</strong>(offset, whence = SEEK_SET) &#x21d2; 0 </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Repositions the file pointer.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#stat-instance_method" title="#stat (instance method)">#<strong>stat</strong> &#x21d2; File::Stat </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Gets file status information.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#sync-instance_method" title="#sync (instance method)">#<strong>sync</strong> &#x21d2; IO </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Synchronizes the stream with the underlying storage.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#sysread-instance_method" title="#sysread (instance method)">#<strong>sysread</strong>(length) &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Reads data at the system level.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#sysseek-instance_method" title="#sysseek (instance method)">#<strong>sysseek</strong>(offset, whence = SEEK_SET) &#x21d2; Integer </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Repositions the file pointer at the system level.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#syswrite-instance_method" title="#syswrite (instance method)">#<strong>syswrite</strong>(buf) &#x21d2; Integer </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Writes data to the stream at the OS level.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#tell-instance_method" title="#tell (instance method)">#<strong>tell</strong> &#x21d2; Integer </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Gets the current file position (alias for <span class='object_link'><a href="#pos-instance_method" title="Rex::Post::IO#pos (method)">#pos</a></span>).</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#tty%3F-instance_method" title="#tty? (instance method)">#<strong>tty?</strong> &#x21d2; Boolean </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Checks if the I/O stream is a terminal device.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#ungetc-instance_method" title="#ungetc (instance method)">#<strong>ungetc</strong>(val) &#x21d2; nil </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Pushes a character back onto the stream.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#write-instance_method" title="#write (instance method)">#<strong>write</strong>(buf) &#x21d2; Integer </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Writes data to the stream.</p>
</div></span>
</li>
</ul>
<div id="instance_attr_details" class="attr_details">
<h2>Instance Attribute Details</h2>
<span id="filed=-instance_method"></span>
<div class="method_details first">
<h3 class="signature first" id="filed-instance_method">
#<strong>filed</strong> &#x21d2; <tt>Object</tt> <span class="extras">(protected)</span>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the value of attribute filed.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
14
15
16</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 14</span>
<span class='kw'>def</span> <span class='id identifier rubyid_filed'>filed</span>
<span class='ivar'>@filed</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<span id="mode=-instance_method"></span>
<div class="method_details ">
<h3 class="signature " id="mode-instance_method">
#<strong>mode</strong> &#x21d2; <tt>Object</tt> <span class="extras">(protected)</span>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the value of attribute mode.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
14
15
16</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 14</span>
<span class='kw'>def</span> <span class='id identifier rubyid_mode'>mode</span>
<span class='ivar'>@mode</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
<div id="instance_method_details" class="method_details_list">
<h2>Instance Method Details</h2>
<div class="method_details first">
<h3 class="signature first" id="binmode-instance_method">
#<strong>binmode</strong> &#x21d2; <tt><span class='object_link'><a href="" title="Rex::Post::IO (class)">IO</a></span></tt>
</h3><div class="docstring">
<div class="discussion">
<p>Sets the stream to binary mode.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt><span class='object_link'><a href="" title="Rex::Post::IO (class)">IO</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>self</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
53
54
55</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 53</span>
<span class='kw'>def</span> <span class='id identifier rubyid_binmode'>binmode</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="close-instance_method">
#<strong>close</strong> &#x21d2; <tt>nil</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Closes the I/O stream.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>nil</tt>)</span>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
62
63
64</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 62</span>
<span class='kw'>def</span> <span class='id identifier rubyid_close'>close</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="close_read-instance_method">
#<strong>close_read</strong> &#x21d2; <tt>nil</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Closes the read end of a duplex I/O stream.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>nil</tt>)</span>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
71
72
73</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 71</span>
<span class='kw'>def</span> <span class='id identifier rubyid_close_read'>close_read</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="close_write-instance_method">
#<strong>close_write</strong> &#x21d2; <tt>nil</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Closes the write end of a duplex I/O stream.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>nil</tt>)</span>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
80
81
82</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 80</span>
<span class='kw'>def</span> <span class='id identifier rubyid_close_write'>close_write</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="closed?-instance_method">
#<strong>closed?</strong> &#x21d2; <tt>Boolean</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Checks if the I/O stream is closed.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Boolean</tt>)</span>
&mdash;
<div class='inline'>
<p>true if stream is closed</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
33
34
35</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 33</span>
<span class='kw'>def</span> <span class='id identifier rubyid_closed?'>closed?</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="each-instance_method">
#<strong>each</strong>(sep = $/) {|String| ... } &#x21d2; <tt>void</tt>
</h3><div class="docstring">
<div class="discussion">
<p class="note returns_void">This method returns an undefined value.</p>
<p>Iterates over each line in the stream.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>sep</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>$/</tt>)</em>
&mdash;
<div class='inline'>
<p>line separator (default: $/)</p>
</div>
</li>
</ul>
<p class="tag_title">Yields:</p>
<ul class="yield">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>each line from the stream</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
92
93
94</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 92</span>
<span class='kw'>def</span> <span class='id identifier rubyid_each'>each</span><span class='lparen'>(</span><span class='id identifier rubyid_sep'>sep</span> <span class='op'>=</span> <span class='gvar'>$/</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="each_byte-instance_method">
#<strong>each_byte</strong> {|Integer| ... } &#x21d2; <tt>void</tt>
</h3><div class="docstring">
<div class="discussion">
<p class="note returns_void">This method returns an undefined value.</p>
<p>Iterates over each byte in the stream.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Yields:</p>
<ul class="yield">
<li>
<span class='type'>(<tt>Integer</tt>)</span>
&mdash;
<div class='inline'>
<p>each byte from the stream</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
115
116
117</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 115</span>
<span class='kw'>def</span> <span class='id identifier rubyid_each_byte'>each_byte</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="each_line-instance_method">
#<strong>each_line</strong>(sep = $/) {|String| ... } &#x21d2; <tt>void</tt>
</h3><div class="docstring">
<div class="discussion">
<p class="note returns_void">This method returns an undefined value.</p>
<p>Alias for <span class='object_link'><a href="#each-instance_method" title="Rex::Post::IO#each (method)">#each</a></span>.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>sep</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>$/</tt>)</em>
&mdash;
<div class='inline'>
<p>line separator (default: $/)</p>
</div>
</li>
</ul>
<p class="tag_title">Yields:</p>
<ul class="yield">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>each line from the stream</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
104
105
106</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 104</span>
<span class='kw'>def</span> <span class='id identifier rubyid_each_line'>each_line</span><span class='lparen'>(</span><span class='id identifier rubyid_sep'>sep</span> <span class='op'>=</span> <span class='gvar'>$/</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="eof-instance_method">
#<strong>eof</strong> &#x21d2; <tt>Boolean</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Checks if end of file has been reached.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Boolean</tt>)</span>
&mdash;
<div class='inline'>
<p>true if at end of file</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
124
125
126</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 124</span>
<span class='kw'>def</span> <span class='id identifier rubyid_eof'>eof</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="eof?-instance_method">
#<strong>eof?</strong> &#x21d2; <tt>Boolean</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Checks if the end of file has been reached.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Boolean</tt>)</span>
&mdash;
<div class='inline'>
<p>true if at end of file</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
24
25
26</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 24</span>
<span class='kw'>def</span> <span class='id identifier rubyid_eof?'>eof?</span>
<span class='kw'>return</span> <span class='id identifier rubyid_eof'>eof</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="fcntl-instance_method">
#<strong>fcntl</strong>(cmd, arg) &#x21d2; <tt>Integer</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Performs low-level file control operation.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>cmd</span>
<span class='type'>(<tt>Integer</tt>)</span>
&mdash;
<div class='inline'>
<p>control command</p>
</div>
</li>
<li>
<span class='name'>arg</span>
<span class='type'>(<tt>Integer</tt>, <tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>command argument</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Integer</tt>)</span>
&mdash;
<div class='inline'>
<p>result of operation</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
136
137
138</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 136</span>
<span class='kw'>def</span> <span class='id identifier rubyid_fcntl'>fcntl</span><span class='lparen'>(</span><span class='id identifier rubyid_cmd'>cmd</span><span class='comma'>,</span> <span class='id identifier rubyid_arg'>arg</span><span class='rparen'>)</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="flush-instance_method">
#<strong>flush</strong> &#x21d2; <tt><span class='object_link'><a href="" title="Rex::Post::IO (class)">IO</a></span></tt>
</h3><div class="docstring">
<div class="discussion">
<p>Flushes buffered data to the underlying I/O stream.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt><span class='object_link'><a href="" title="Rex::Post::IO (class)">IO</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>self</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
145
146
147</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 145</span>
<span class='kw'>def</span> <span class='id identifier rubyid_flush'>flush</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="fsync-instance_method">
#<strong>fsync</strong> &#x21d2; <tt>0</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Synchronizes all buffered data with the storage device.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>0</tt>)</span>
&mdash;
<div class='inline'>
<p>zero on success</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
154
155
156</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 154</span>
<span class='kw'>def</span> <span class='id identifier rubyid_fsync'>fsync</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="getc-instance_method">
#<strong>getc</strong> &#x21d2; <tt>Integer</tt><sup>?</sup>
</h3><div class="docstring">
<div class="discussion">
<p>Reads a single character from the stream.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Integer</tt>, <tt>nil</tt>)</span>
&mdash;
<div class='inline'>
<p>character code or nil at EOF</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
163
164
165</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 163</span>
<span class='kw'>def</span> <span class='id identifier rubyid_getc'>getc</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="gets-instance_method">
#<strong>gets</strong>(sep = $/) &#x21d2; <tt>String</tt><sup>?</sup>
</h3><div class="docstring">
<div class="discussion">
<p>Reads the next line from the stream.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>sep</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>$/</tt>)</em>
&mdash;
<div class='inline'>
<p>line separator (default: $/)</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>, <tt>nil</tt>)</span>
&mdash;
<div class='inline'>
<p>next line or nil at EOF</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
174
175
176</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 174</span>
<span class='kw'>def</span> <span class='id identifier rubyid_gets'>gets</span><span class='lparen'>(</span><span class='id identifier rubyid_sep'>sep</span> <span class='op'>=</span> <span class='gvar'>$/</span><span class='rparen'>)</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="ioctl-instance_method">
#<strong>ioctl</strong>(cmd, arg) &#x21d2; <tt>Integer</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Performs low-level I/O control operation.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>cmd</span>
<span class='type'>(<tt>Integer</tt>)</span>
&mdash;
<div class='inline'>
<p>control command</p>
</div>
</li>
<li>
<span class='name'>arg</span>
<span class='type'>(<tt>Integer</tt>, <tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>command argument</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Integer</tt>)</span>
&mdash;
<div class='inline'>
<p>result of operation</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
186
187
188</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 186</span>
<span class='kw'>def</span> <span class='id identifier rubyid_ioctl'>ioctl</span><span class='lparen'>(</span><span class='id identifier rubyid_cmd'>cmd</span><span class='comma'>,</span> <span class='id identifier rubyid_arg'>arg</span><span class='rparen'>)</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="isatty-instance_method">
#<strong>isatty</strong> &#x21d2; <tt>Boolean</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Checks if the stream is associated with a terminal device.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Boolean</tt>)</span>
&mdash;
<div class='inline'>
<p>true if stream is a TTY</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
195
196
197</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 195</span>
<span class='kw'>def</span> <span class='id identifier rubyid_isatty'>isatty</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="lineno-instance_method">
#<strong>lineno</strong> &#x21d2; <tt>Integer</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Gets the current line number.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Integer</tt>)</span>
&mdash;
<div class='inline'>
<p>current line number</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
204
205
206</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 204</span>
<span class='kw'>def</span> <span class='id identifier rubyid_lineno'>lineno</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="pos-instance_method">
#<strong>pos</strong> &#x21d2; <tt>Integer</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Gets the current file position.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Integer</tt>)</span>
&mdash;
<div class='inline'>
<p>current byte offset</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
213
214
215</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 213</span>
<span class='kw'>def</span> <span class='id identifier rubyid_pos'>pos</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="print-instance_method">
#<strong>print</strong> &#x21d2; <tt>Integer</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Writes a string to the stream.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Integer</tt>)</span>
&mdash;
<div class='inline'>
<p>number of bytes written</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
222
223
224</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 222</span>
<span class='kw'>def</span> <span class='id identifier rubyid_print'>print</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="printf-instance_method">
#<strong>printf</strong>(fmt, *args) &#x21d2; <tt>nil</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Writes a formatted string to the stream.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>fmt</span>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>format string</p>
</div>
</li>
<li>
<span class='name'>args</span>
<span class='type'>(<tt>Array</tt>)</span>
&mdash;
<div class='inline'>
<p>values to format</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>nil</tt>)</span>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
234
235
236</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 234</span>
<span class='kw'>def</span> <span class='id identifier rubyid_printf'>printf</span><span class='lparen'>(</span><span class='id identifier rubyid_fmt'>fmt</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="putc-instance_method">
#<strong>putc</strong>(obj) &#x21d2; <tt>Integer</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Writes a character to the stream.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>obj</span>
<span class='type'>(<tt>Integer</tt>)</span>
&mdash;
<div class='inline'>
<p>character code to write</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Integer</tt>)</span>
&mdash;
<div class='inline'>
<p>the character code written</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
245
246
247</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 245</span>
<span class='kw'>def</span> <span class='id identifier rubyid_putc'>putc</span><span class='lparen'>(</span><span class='id identifier rubyid_obj'>obj</span><span class='rparen'>)</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="puts-instance_method">
#<strong>puts</strong>(obj) &#x21d2; <tt>nil</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Writes a string followed by newline to the stream.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>obj</span>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>data to write</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>nil</tt>)</span>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
256
257
258</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 256</span>
<span class='kw'>def</span> <span class='id identifier rubyid_puts'>puts</span><span class='lparen'>(</span><span class='id identifier rubyid_obj'>obj</span><span class='rparen'>)</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="read-instance_method">
#<strong>read</strong>(length = nil, buffer = nil) &#x21d2; <tt>String</tt><sup>?</sup>
</h3><div class="docstring">
<div class="discussion">
<p>Reads data from the stream.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>length</span>
<span class='type'>(<tt>Integer</tt>, <tt>nil</tt>)</span>
<em class="default">(defaults to: <tt>nil</tt>)</em>
&mdash;
<div class='inline'>
<p>number of bytes to read (nil = read all)</p>
</div>
</li>
<li>
<span class='name'>buffer</span>
<span class='type'>(<tt>String</tt>, <tt>nil</tt>)</span>
<em class="default">(defaults to: <tt>nil</tt>)</em>
&mdash;
<div class='inline'>
<p>buffer to read into</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>, <tt>nil</tt>)</span>
&mdash;
<div class='inline'>
<p>data read or nil at EOF</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
268
269
270</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 268</span>
<span class='kw'>def</span> <span class='id identifier rubyid_read'>read</span><span class='lparen'>(</span><span class='id identifier rubyid_length'>length</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_buffer'>buffer</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="readchar-instance_method">
#<strong>readchar</strong> &#x21d2; <tt>String</tt><sup>?</sup>
</h3><div class="docstring">
<div class="discussion">
<p>Reads a single character as a string.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>, <tt>nil</tt>)</span>
&mdash;
<div class='inline'>
<p>character or nil at EOF</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
277
278
279</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 277</span>
<span class='kw'>def</span> <span class='id identifier rubyid_readchar'>readchar</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="readline-instance_method">
#<strong>readline</strong>(sep = $/) &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Reads the next line from the stream.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>sep</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>$/</tt>)</em>
&mdash;
<div class='inline'>
<p>line separator (default: $/)</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>next line</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
<li>
<span class='type'>(<tt>EOFError</tt>)</span>
&mdash;
<div class='inline'>
<p>if at end of file</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
289
290
291</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 289</span>
<span class='kw'>def</span> <span class='id identifier rubyid_readline'>readline</span><span class='lparen'>(</span><span class='id identifier rubyid_sep'>sep</span> <span class='op'>=</span> <span class='gvar'>$/</span><span class='rparen'>)</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="readlines-instance_method">
#<strong>readlines</strong>(sep = $/) &#x21d2; <tt>Array&lt;String&gt;</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Reads all lines from the stream into an array.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>sep</span>
<span class='type'>(<tt>String</tt>)</span>
<em class="default">(defaults to: <tt>$/</tt>)</em>
&mdash;
<div class='inline'>
<p>line separator (default: $/)</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
&mdash;
<div class='inline'>
<p>array of lines</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
300
301
302</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 300</span>
<span class='kw'>def</span> <span class='id identifier rubyid_readlines'>readlines</span><span class='lparen'>(</span><span class='id identifier rubyid_sep'>sep</span> <span class='op'>=</span> <span class='gvar'>$/</span><span class='rparen'>)</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="rewind-instance_method">
#<strong>rewind</strong> &#x21d2; <tt>0</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Repositions the stream to the beginning.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>0</tt>)</span>
&mdash;
<div class='inline'>
<p>zero on success</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
309
310
311</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 309</span>
<span class='kw'>def</span> <span class='id identifier rubyid_rewind'>rewind</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="seek-instance_method">
#<strong>seek</strong>(offset, whence = SEEK_SET) &#x21d2; <tt>0</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Repositions the file pointer.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>offset</span>
<span class='type'>(<tt>Integer</tt>)</span>
&mdash;
<div class='inline'>
<p>byte offset</p>
</div>
</li>
<li>
<span class='name'>whence</span>
<span class='type'>(<tt>Integer</tt>)</span>
<em class="default">(defaults to: <tt>SEEK_SET</tt>)</em>
&mdash;
<div class='inline'>
<p>position reference (SEEK_SET, SEEK_CUR, SEEK_END)</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>0</tt>)</span>
&mdash;
<div class='inline'>
<p>zero on success</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
321
322
323</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 321</span>
<span class='kw'>def</span> <span class='id identifier rubyid_seek'>seek</span><span class='lparen'>(</span><span class='id identifier rubyid_offset'>offset</span><span class='comma'>,</span> <span class='id identifier rubyid_whence'>whence</span> <span class='op'>=</span> <span class='const'>SEEK_SET</span><span class='rparen'>)</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="stat-instance_method">
#<strong>stat</strong> &#x21d2; <tt>File::Stat</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Gets file status information.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>File::Stat</tt>)</span>
&mdash;
<div class='inline'>
<p>file status object</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
330
331
332</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 330</span>
<span class='kw'>def</span> <span class='id identifier rubyid_stat'>stat</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="sync-instance_method">
#<strong>sync</strong> &#x21d2; <tt><span class='object_link'><a href="" title="Rex::Post::IO (class)">IO</a></span></tt>
</h3><div class="docstring">
<div class="discussion">
<p>Synchronizes the stream with the underlying storage.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt><span class='object_link'><a href="" title="Rex::Post::IO (class)">IO</a></span></tt>)</span>
&mdash;
<div class='inline'>
<p>self</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
339
340
341</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 339</span>
<span class='kw'>def</span> <span class='id identifier rubyid_sync'>sync</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="sysread-instance_method">
#<strong>sysread</strong>(length) &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Reads data at the system level.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>length</span>
<span class='type'>(<tt>Integer</tt>)</span>
&mdash;
<div class='inline'>
<p>number of bytes to read</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>data read</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
350
351
352</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 350</span>
<span class='kw'>def</span> <span class='id identifier rubyid_sysread'>sysread</span><span class='lparen'>(</span><span class='id identifier rubyid_length'>length</span><span class='rparen'>)</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="sysseek-instance_method">
#<strong>sysseek</strong>(offset, whence = SEEK_SET) &#x21d2; <tt>Integer</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Repositions the file pointer at the system level.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>offset</span>
<span class='type'>(<tt>Integer</tt>)</span>
&mdash;
<div class='inline'>
<p>byte offset</p>
</div>
</li>
<li>
<span class='name'>whence</span>
<span class='type'>(<tt>Integer</tt>)</span>
<em class="default">(defaults to: <tt>SEEK_SET</tt>)</em>
&mdash;
<div class='inline'>
<p>position reference (SEEK_SET, SEEK_CUR, SEEK_END)</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Integer</tt>)</span>
&mdash;
<div class='inline'>
<p>new file offset</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
362
363
364</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 362</span>
<span class='kw'>def</span> <span class='id identifier rubyid_sysseek'>sysseek</span><span class='lparen'>(</span><span class='id identifier rubyid_offset'>offset</span><span class='comma'>,</span> <span class='id identifier rubyid_whence'>whence</span> <span class='op'>=</span> <span class='const'>SEEK_SET</span><span class='rparen'>)</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="syswrite-instance_method">
#<strong>syswrite</strong>(buf) &#x21d2; <tt>Integer</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Writes data to the stream at the OS level.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>buf</span>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>data to write</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Integer</tt>)</span>
&mdash;
<div class='inline'>
<p>number of bytes written</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
373
374
375</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 373</span>
<span class='kw'>def</span> <span class='id identifier rubyid_syswrite'>syswrite</span><span class='lparen'>(</span><span class='id identifier rubyid_buf'>buf</span><span class='rparen'>)</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="tell-instance_method">
#<strong>tell</strong> &#x21d2; <tt>Integer</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Gets the current file position (alias for <span class='object_link'><a href="#pos-instance_method" title="Rex::Post::IO#pos (method)">#pos</a></span>).</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Integer</tt>)</span>
&mdash;
<div class='inline'>
<p>current byte offset</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
380
381
382</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 380</span>
<span class='kw'>def</span> <span class='id identifier rubyid_tell'>tell</span>
<span class='kw'>return</span> <span class='id identifier rubyid_pos'>pos</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="tty?-instance_method">
#<strong>tty?</strong> &#x21d2; <tt>Boolean</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Checks if the I/O stream is a terminal device.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Boolean</tt>)</span>
&mdash;
<div class='inline'>
<p>true if stream is a TTY</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
40
41
42</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 40</span>
<span class='kw'>def</span> <span class='id identifier rubyid_tty?'>tty?</span>
<span class='kw'>return</span> <span class='id identifier rubyid_isatty'>isatty</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="ungetc-instance_method">
#<strong>ungetc</strong>(val) &#x21d2; <tt>nil</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Pushes a character back onto the stream.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>val</span>
<span class='type'>(<tt>Integer</tt>)</span>
&mdash;
<div class='inline'>
<p>character code to push back</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>nil</tt>)</span>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
391
392
393</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 391</span>
<span class='kw'>def</span> <span class='id identifier rubyid_ungetc'>ungetc</span><span class='lparen'>(</span><span class='id identifier rubyid_val'>val</span><span class='rparen'>)</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="write-instance_method">
#<strong>write</strong>(buf) &#x21d2; <tt>Integer</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Writes data to the stream.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>buf</span>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>data to write</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Integer</tt>)</span>
&mdash;
<div class='inline'>
<p>number of bytes written</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt>NotImplementedError</tt>)</span>
&mdash;
<div class='inline'>
<p>Must be implemented by subclass</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
402
403
404</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/rex/post/io.rb', line 402</span>
<span class='kw'>def</span> <span class='id identifier rubyid_write'>write</span><span class='lparen'>(</span><span class='id identifier rubyid_buf'>buf</span><span class='rparen'>)</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>NotImplementedError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
</div>
<div id="footer">
Generated on Fri May 8 17:04:05 2026 by
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
0.9.37 (ruby-3.1.5).
</div>
</div>
</body>
</html>