mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2026-03-06 05:30:05 +08:00
0.0.1
This commit is contained in:
75
docs/php/pcntl_fork.html
Normal file
75
docs/php/pcntl_fork.html
Normal file
@@ -0,0 +1,75 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||
<title>在当前进程当前位置产生分支(子进程)。译注:fork是创建了一个子进程,父进程和子进程
|
||||
都从fork的位置开始向下继续执行,不同的是父进程执行过程中,得到的fork返回值为子进程
|
||||
号,而子进程得到的是0。</title>
|
||||
</head>
|
||||
<body class="docs"> </ul>
|
||||
</div>
|
||||
<div id="layout">
|
||||
<div id="layout-content"><div id="function.pcntl-fork" class="refentry">
|
||||
<div class="refnamediv">
|
||||
<h1 class="refname">pcntl_fork</h1>
|
||||
<p class="verinfo">(PHP 4 >= 4.1.0, PHP 5, PHP 7)</p><p class="refpurpose"><span class="refname">pcntl_fork</span> — <span class="dc-title">
|
||||
在当前进程当前位置产生分支(子进程)。译注:fork是创建了一个子进程,父进程和子进程
|
||||
都从fork的位置开始向下继续执行,不同的是父进程执行过程中,得到的fork返回值为子进程
|
||||
号,而子进程得到的是0。
|
||||
</span></p>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="refsect1 description" id="refsect1-function.pcntl-fork-description">
|
||||
<h3 class="title">说明</h3>
|
||||
<div class="methodsynopsis dc-description">
|
||||
<span class="methodname"><strong>pcntl_fork</strong></span>
|
||||
( <span class="methodparam">void</span>
|
||||
) : <span class="type">int</span></div>
|
||||
|
||||
<p class="para rdfs-comment">
|
||||
<span class="function"><strong>pcntl_fork()</strong></span>函数创建一个子进程,这个子进程仅PID(进程号)
|
||||
和PPID(父进程号)与其父进程不同。fork怎样在您的系统工作的详细信息请查阅您的系统
|
||||
的fork(2)手册。
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="refsect1 returnvalues" id="refsect1-function.pcntl-fork-returnvalues">
|
||||
<h3 class="title">返回值</h3>
|
||||
<p class="para">
|
||||
成功时,在父进程执行线程内返回产生的子进程的PID,在子进程执行线程内返回0。失败时,在
|
||||
父进程上下文返回-1,不会创建子进程,并且会引发一个PHP错误。
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="refsect1 examples" id="refsect1-function.pcntl-fork-examples">
|
||||
<h3 class="title">范例</h3>
|
||||
<p class="para">
|
||||
<div class="example" id="example-4325">
|
||||
<p><strong>Example #1 <span class="function"><strong>pcntl_fork()</strong></span> 示例</strong></p>
|
||||
<div class="example-contents">
|
||||
<div class="phpcode"><pre><span style="color: #000000">
|
||||
<span style="color: #0000BB"><?php<br /><br />$pid </span><span style="color: #007700">= </span><span style="color: #0000BB">pcntl_fork</span><span style="color: #007700">();<br /></span><span style="color: #FF8000">//父进程和子进程都会执行下面代码<br /></span><span style="color: #007700">if (</span><span style="color: #0000BB">$pid </span><span style="color: #007700">== -</span><span style="color: #0000BB">1</span><span style="color: #007700">) {<br /> </span><span style="color: #FF8000">//错误处理:创建子进程失败时返回-1.<br /> </span><span style="color: #007700">die(</span><span style="color: #DD0000">'could not fork'</span><span style="color: #007700">);<br />} else if (</span><span style="color: #0000BB">$pid</span><span style="color: #007700">) {<br /> </span><span style="color: #FF8000">//父进程会得到子进程号,所以这里是父进程执行的逻辑<br /> </span><span style="color: #0000BB">pcntl_wait</span><span style="color: #007700">(</span><span style="color: #0000BB">$status</span><span style="color: #007700">); </span><span style="color: #FF8000">//等待子进程中断,防止子进程成为僵尸进程。<br /></span><span style="color: #007700">} else {<br /> </span><span style="color: #FF8000">//子进程得到的$pid为0, 所以这里是子进程执行的逻辑。<br /></span><span style="color: #007700">}<br /><br /></span><span style="color: #0000BB">?></span>
|
||||
</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="refsect1 seealso" id="refsect1-function.pcntl-fork-seealso">
|
||||
<h3 class="title">参见</h3>
|
||||
<p class="para">
|
||||
<ul class="simplelist">
|
||||
<li class="member"><span class="function"><a href="pcntl_waitpid.html" class="function" rel="rdfs-seeAlso">pcntl_waitpid()</a> - 等待或返回fork的子进程状态</span></li>
|
||||
<li class="member"><span class="function"><a href="pcntl_signal.html" class="function" rel="rdfs-seeAlso">pcntl_signal()</a> - 安装一个信号处理器</span></li>
|
||||
</ul>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
</div></div></div></body></html>
|
||||
Reference in New Issue
Block a user