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">-&gt;</span><span class="variable">reader</span><span class="operator">();</span>
</pre>
<pre>
            <span class="keyword">while</span><span class="operator">(&lt;</span><span class="variable">$pipe</span><span class="operator">&gt;)</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">-&gt;</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">-&gt;</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">(&lt;</span><span class="variable">$pipe</span><span class="operator">&gt;)</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 &lt;<a href="mailto:perl5-porters@perl.org">perl5-porters@perl.org</a>&gt;.</p>
<p>
</p>
<hr />
<h1><a name="copyright">COPYRIGHT</a></h1>
<p>Copyright (c) 1996-8 Graham Barr &lt;<a href="mailto:gbarr@pobox.com">gbarr@pobox.com</a>&gt;. 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 + -
显示快捷键?