pipe.html
来自「perl教程」· HTML 代码 · 共 161 行
HTML
161 行
<?xml version="1.0" ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<!-- saved from url=(0017)http://localhost/ -->
<script language="JavaScript" src="../../displayToc.js"></script>
<script language="JavaScript" src="../../tocParas.js"></script>
<script language="JavaScript" src="../../tocTab.js"></script>
<link rel="stylesheet" type="text/css" href="../../scineplex.css">
<title>IO::Pipe - supply object methods for pipes</title>
<link rel="stylesheet" href="../../Active.css" type="text/css" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:" />
</head>
<body>
<script>writelinks('__top__',2);</script>
<h1><a>IO::Pipe - supply object methods for pipes</a></h1>
<p><a name="__index__"></a></p>
<!-- INDEX BEGIN -->
<ul>
<li><a href="#name">NAME</a></li>
<li><a href="#synopsis">SYNOPSIS</a></li>
<li><a href="#description">DESCRIPTION</a></li>
<li><a href="#constructor">CONSTRUCTOR</a></li>
<li><a href="#methods">METHODS</a></li>
<li><a href="#see_also">SEE ALSO</a></li>
<li><a href="#author">AUTHOR</a></li>
<li><a href="#copyright">COPYRIGHT</a></li>
</ul>
<!-- INDEX END -->
<hr />
<p>
</p>
<h1><a name="name">NAME</a></h1>
<p>IO::Pipe - supply object methods for pipes</p>
<p>
</p>
<hr />
<h1><a name="synopsis">SYNOPSIS</a></h1>
<pre>
<span class="keyword">use</span> <span class="variable">IO::Pipe</span><span class="operator">;</span>
</pre>
<pre>
<span class="variable">$pipe</span> <span class="operator">=</span> <span class="variable">new</span> <span class="variable">IO::Pipe</span><span class="operator">;</span>
</pre>
<pre>
<span class="keyword">if</span><span class="operator">(</span><span class="variable">$pid</span> <span class="operator">=</span> <span class="keyword">fork</span><span class="operator">())</span> <span class="operator">{</span> <span class="comment"># Parent</span>
<span class="variable">$pipe</span><span class="operator">-></span><span class="variable">reader</span><span class="operator">();</span>
</pre>
<pre>
<span class="keyword">while</span><span class="operator">(<</span><span class="variable">$pipe</span><span class="operator">>)</span> <span class="operator">{</span>
<span class="operator">...</span>
<span class="operator">}</span>
</pre>
<pre>
<span class="operator">}</span>
<span class="keyword">elsif</span><span class="operator">(</span><span class="keyword">defined</span> <span class="variable">$pid</span><span class="operator">)</span> <span class="operator">{</span> <span class="comment"># Child</span>
<span class="variable">$pipe</span><span class="operator">-></span><span class="variable">writer</span><span class="operator">();</span>
</pre>
<pre>
print $pipe ...
}</pre>
<pre>
or</pre>
<pre>
<span class="variable">$pipe</span> <span class="operator">=</span> <span class="variable">new</span> <span class="variable">IO::Pipe</span><span class="operator">;</span>
</pre>
<pre>
<span class="variable">$pipe</span><span class="operator">-></span><span class="variable">reader</span><span class="operator">(</span><span class="string">qw(ls -l)</span><span class="operator">);</span>
</pre>
<pre>
<span class="keyword">while</span><span class="operator">(<</span><span class="variable">$pipe</span><span class="operator">>)</span> <span class="operator">{</span>
<span class="operator">...</span>
<span class="operator">}</span>
</pre>
<p>
</p>
<hr />
<h1><a name="description">DESCRIPTION</a></h1>
<p><code>IO::Pipe</code> provides an interface to creating pipes between
processes.</p>
<p>
</p>
<hr />
<h1><a name="constructor">CONSTRUCTOR</a></h1>
<dl>
<dt><strong><a name="item_new">new ( [READER, WRITER] )</a></strong>
<dd>
<p>Creates an <code>IO::Pipe</code>, which is a reference to a newly created symbol
(see the <code>Symbol</code> package). <code>IO::Pipe::new</code> optionally takes two
arguments, which should be objects blessed into <code>IO::Handle</code>, or a
subclass thereof. These two objects will be used for the system call
to <a href="../../lib/Pod/perlfunc.html#item_pipe"><code>pipe</code></a>. If no arguments are given then method <a href="#item_handles"><code>handles</code></a> is called
on the new <code>IO::Pipe</code> object.</p>
</dd>
<dd>
<p>These two handles are held in the array part of the GLOB until either
<a href="#item_reader"><code>reader</code></a> or <a href="#item_writer"><code>writer</code></a> is called.</p>
</dd>
</li>
</dl>
<p>
</p>
<hr />
<h1><a name="methods">METHODS</a></h1>
<dl>
<dt><strong><a name="item_reader">reader ([ARGS])</a></strong>
<dd>
<p>The object is re-blessed into a sub-class of <code>IO::Handle</code>, and becomes a
handle at the reading end of the pipe. If <code>ARGS</code> are given then <a href="../../lib/Pod/perlfunc.html#item_fork"><code>fork</code></a>
is called and <code>ARGS</code> are passed to exec.</p>
</dd>
</li>
<dt><strong><a name="item_writer">writer ([ARGS])</a></strong>
<dd>
<p>The object is re-blessed into a sub-class of <code>IO::Handle</code>, and becomes a
handle at the writing end of the pipe. If <code>ARGS</code> are given then <a href="../../lib/Pod/perlfunc.html#item_fork"><code>fork</code></a>
is called and <code>ARGS</code> are passed to exec.</p>
</dd>
</li>
<dt><strong><a name="item_handles">handles ()</a></strong>
<dd>
<p>This method is called during construction by <code>IO::Pipe::new</code>
on the newly created <code>IO::Pipe</code> object. It returns an array of two objects
blessed into <code>IO::Pipe::End</code>, or a subclass thereof.</p>
</dd>
</li>
</dl>
<p>
</p>
<hr />
<h1><a name="see_also">SEE ALSO</a></h1>
<p><a href="../../lib/IO/Handle.html">the IO::Handle manpage</a></p>
<p>
</p>
<hr />
<h1><a name="author">AUTHOR</a></h1>
<p>Graham Barr. Currently maintained by the Perl Porters. Please report all
bugs to <<a href="mailto:perl5-porters@perl.org">perl5-porters@perl.org</a>>.</p>
<p>
</p>
<hr />
<h1><a name="copyright">COPYRIGHT</a></h1>
<p>Copyright (c) 1996-8 Graham Barr <<a href="mailto:gbarr@pobox.com">gbarr@pobox.com</a>>. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.</p>
</body>
</html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?