-
Notifications
You must be signed in to change notification settings - Fork 157
/
Copy pathpcntl-rfork.xml
155 lines (147 loc) · 4.62 KB
/
pcntl-rfork.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 61374bbe228e8e9c55a24aba59a1e2bb2a871148 Maintainer: Fan2Shrek Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.pcntl-rfork" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>pcntl_rfork</refname>
<refpurpose>Manipule les ressources du processus</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>pcntl_rfork</methodname>
<methodparam><type>int</type><parameter>flags</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>signal</parameter><initializer>0</initializer></methodparam>
</methodsynopsis>
<para>
Manipule les ressources du processus.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>flags</parameter></term>
<listitem>
<para>
Le paramètre <parameter>flags</parameter> détermine quelles ressources du processus appelant (parent)
sont partagées par le nouveau processus (enfant) ou initialisées à leurs valeurs par défaut.
</para>
<para>
<parameter>flags</parameter> est le OU logique d'un sous-ensemble des valeurs suivantes :
<simplelist>
<member>
<constant>RFPROC</constant>: Si défini un nouveau processus est créé ;
sinon les changements affectent le processus actuel.
</member>
<member>
<constant>RFNOWAIT</constant>: Si défini, le processus enfant sera dissocié du parent.
A la sortie, le processus enfant ne laissera pas de statut à collecter pour le parent.
</member>
<member>
<constant>RFFDG</constant>: Si défini, la table des descripteurs de fichiers de l'appelant est copiée ;
sinon les deux processus partagent une seule table.
</member>
<member>
<constant>RFCFDG</constant>: Si défini, le nouveau processus démarre avec une table des descripteurs de fichiers propre.
Est mutuellement exclusif avec <constant>RFFDG</constant>.
</member>
<member>
<constant>RFLINUXTHPN</constant>: Si défini, le noyau renverra SIGUSR1 au lieu de SIGCHILD à la sortie du thread pour l'enfant.
Ceci est destiné à faire la notification de sortie du parent de sortie du thread Linux clone.
</member>
</simplelist>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>signal</parameter></term>
<listitem>
<para>
Le numéro du signal.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
En cas de succès, le PID du processus enfant est retourné dans le contexte du parent,
et un <literal>0</literal> est retourné dans le contexte du processus enfant.
En cas d'échec, un <literal>-1</literal> sera retourné dans le contexte du parent,
aucun processus enfant ne sera créé, et une erreur PHP sera déclenchée.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemple de <function>pcntl_rfork</function></title>
<programlisting role="php">
<![CDATA[
<?php
$pid = pcntl_rfork(RFNOWAIT|RFTSIGZMB, SIGUSR1);
if ($pid > 0) {
// Ceci est le processus parent.
var_dump($pid);
} else {
// Ceci est le processus enfant.
var_dump($pid);
sleep(2); // tant que l'enfant ne dort pas, nous voyons son "pid"
}
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
int(77093)
int(0)
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Cette fonction n'est disponible que sur les systèmes BSD.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>pcntl_fork</function></member>
<member><function>pcntl_waitpid</function></member>
<member><function>pcntl_signal</function></member>
<member><function>cli_set_process_title</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->