-
Notifications
You must be signed in to change notification settings - Fork 58
/
Copy pathpcntl-rfork.xml
155 lines (147 loc) · 4.56 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: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.pcntl-rfork" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>pcntl_rfork</refname>
<refpurpose>Manipula los recursos del proceso</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>
Manipula los recursos del proceso.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>flags</parameter></term>
<listitem>
<para>
El parámetro <parameter>flags</parameter> determina qué recursos del proceso llamante (padre)
son compartidos por el nuevo proceso (hijo) o inicializados a sus valores por omisión.
</para>
<para>
<parameter>flags</parameter> es el OU lógico de un subconjunto de los siguientes valores:
<simplelist>
<member>
<constant>RFPROC</constant>: Si está definido, se crea un nuevo proceso;
de lo contrario, los cambios afectan al proceso actual.
</member>
<member>
<constant>RFNOWAIT</constant>: Si está definido, el proceso hijo será disociado del padre.
Al salir, el proceso hijo no dejará un estado a recolectar para el padre.
</member>
<member>
<constant>RFFDG</constant>: Si está definido, la tabla de descriptores de ficheros del llamante es copiada;
de lo contrario, ambos procesos comparten una sola tabla.
</member>
<member>
<constant>RFCFDG</constant>: Si está definido, el nuevo proceso comienza con una tabla de descriptores de ficheros propia.
Es mutuamente excluyente con <constant>RFFDG</constant>.
</member>
<member>
<constant>RFLINUXTHPN</constant>: Si está definido, el núcleo devolverá SIGUSR1 en lugar de SIGCHILD al salir del hilo para el hijo.
Esto está destinado a hacer la notificación de salida del padre de salida del hilo Linux clone.
</member>
</simplelist>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>signal</parameter></term>
<listitem>
<para>
El número del signal.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
En caso de éxito, el PID del proceso hijo es devuelto en el contexto del padre,
y un <literal>0</literal> es devuelto en el contexto del proceso hijo.
En caso de fallo, un <literal>-1</literal> será devuelto en el contexto del padre,
ningún proceso hijo será creado, y se lanzará un error PHP.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>pcntl_rfork</function></title>
<programlisting role="php">
<![CDATA[
<?php
$pid = pcntl_rfork(RFNOWAIT|RFTSIGZMB, SIGUSR1);
if ($pid > 0) {
// Esto es el proceso padre.
var_dump($pid);
} else {
// Esto es el proceso hijo.
var_dump($pid);
sleep(2); // mientras el hijo no duerma, vemos su "pid"
}
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
int(77093)
int(0)
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Esta función solo está disponible en sistemas 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
-->