<!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>Forks the currently running process</title> </head> <body><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="function.pcntl-exec.html">pcntl_exec</a></div> <div class="next" style="text-align: right; float: right;"><a href="function.pcntl-get-last-error.html">pcntl_get_last_error</a></div> <div class="up"><a href="ref.pcntl.html">PCNTL Functions</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div><hr /><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)</p><p class="refpurpose"><span class="refname">pcntl_fork</span> — <span class="dc-title">Forks the currently running process</span></p> </div> <div class="refsect1 description" id="refsect1-function.pcntl-fork-description"> <h3 class="title">Description</h3> <div class="methodsynopsis dc-description"> <span class="type">int</span> <span class="methodname"><strong>pcntl_fork</strong></span> ( <span class="methodparam">void</span> )</div> <p class="para rdfs-comment"> The <span class="function"><strong>pcntl_fork()</strong></span> function creates a child process that differs from the parent process only in its PID and PPID. Please see your system's fork(2) man page for specific details as to how fork works on your system. </p> </div> <div class="refsect1 returnvalues" id="refsect1-function.pcntl-fork-returnvalues"> <h3 class="title">Return Values</h3> <p class="para"> On success, the PID of the child process is returned in the parent's thread of execution, and a 0 is returned in the child's thread of execution. On failure, a -1 will be returned in the parent's context, no child process will be created, and a PHP error is raised. </p> </div> <div class="refsect1 examples" id="refsect1-function.pcntl-fork-examples"> <h3 class="title">Examples</h3> <p class="para"> <div class="example" id="example-3643"> <p><strong>Example #1 <span class="function"><strong>pcntl_fork()</strong></span> example</strong></p> <div class="example-contents"> <div class="phpcode"><code><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 />if (</span><span style="color: #0000BB">$pid </span><span style="color: #007700">== -</span><span style="color: #0000BB">1</span><span style="color: #007700">) {<br /> 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">// we are the parent<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">//Protect against Zombie children<br /></span><span style="color: #007700">} else {<br /> </span><span style="color: #FF8000">// we are the child<br /></span><span style="color: #007700">}<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> </p> </div> <div class="refsect1 seealso" id="refsect1-function.pcntl-fork-seealso"> <h3 class="title">See Also</h3> <p class="para"> <ul class="simplelist"> <li class="member"> <span class="function"><a href="function.pcntl-waitpid.html" class="function" rel="rdfs-seeAlso">pcntl_waitpid()</a> - Waits on or returns the status of a forked child</span></li> <li class="member"> <span class="function"><a href="function.pcntl-signal.html" class="function" rel="rdfs-seeAlso">pcntl_signal()</a> - Installs a signal handler</span></li> <li class="member"> <span class="function"><a href="function.setproctitle.html" class="function" rel="rdfs-seeAlso">setproctitle()</a> - Set the process title</span></li> </ul> </p> </div> </div><hr /><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="function.pcntl-exec.html">pcntl_exec</a></div> <div class="next" style="text-align: right; float: right;"><a href="function.pcntl-get-last-error.html">pcntl_get_last_error</a></div> <div class="up"><a href="ref.pcntl.html">PCNTL Functions</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div></body></html>