mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-06-17 21:16:57 +08:00
75 lines
4.7 KiB
HTML
75 lines
4.7 KiB
HTML
<!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> |