/
pcntl-wait.xml
142 lines (137 loc) · 5.49 KB
/
pcntl-wait.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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 61374bbe228e8e9c55a24aba59a1e2bb2a871148 Maintainer: takagi Status: ready -->
<refentry xml:id="function.pcntl-wait" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>pcntl_wait</refname>
<refpurpose>待つかフォークした子プロセスのステータスを返す</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>pcntl_wait</methodname>
<methodparam><type>int</type><parameter role="reference">status</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>flags</parameter><initializer>0</initializer></methodparam>
<methodparam choice="opt"><type>array</type><parameter role="reference">resource_usage</parameter><initializer>[]</initializer></methodparam>
</methodsynopsis>
<para>
この関数は、子プロセスが終了する・
カレントのプロセスを終了させるシグナルが送信される・シグナル処理関数を
コールするシグナルが送信される
のいずれかが発生するまでカレントのプロセスの実行を中断します。
子プロセスが、 コール時に
既に終了している場合("ゾンビ"プロセスと呼ばれます)、この関数は
直ちに処理を返します。子プロセスにより使用される全てのシステム
リソースは、解放されます。waitpid のシステムでの動作に関する詳細は、
システムの wait(2) についての man ページを参照ください。
</para>
<note>
<para>
この関数は、<parameter>process_id</parameter> に <literal>-1</literal>
を指定し、<parameter>flags</parameter> を何も設定せずに
<function>pcntl_waitpid</function> をコールするのと等価です。
</para>
</note>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>status</parameter></term>
<listitem>
<para>
<function>pcntl_wait</function> は、パラメータ
<parameter>status</parameter> の中にステータス情報を保存します。
このステータスは、次の関数を用いて評価可能です。
<function>pcntl_wifexited</function>、
<function>pcntl_wifstopped</function>、
<function>pcntl_wifsignaled</function>、
<function>pcntl_wexitstatus</function>、
<function>pcntl_wtermsig</function> および
<function>pcntl_wstopsig</function> 。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>flags</parameter></term>
<listitem>
<para>
システム上で wait3 が使用可能な場合 (ほとんどの BSD 系システムが
該当します)、オプションのパラメータ <parameter>flags</parameter>
を使用可能です。このパラメータが指定されない場合、wait はシステムコールに
対して使用されます。wait3 が使用できない場合、<parameter>flags
</parameter> に値を設定しても何の影響も及ぼしません。
<parameter>flags</parameter> の値は、次の 2 つのグローバル定数の
ゼロまたはそれ以上の論理和です。
<table>
<title><parameter>flags</parameter> のとりうる値</title>
<tgroup cols="2">
<tbody>
<row>
<entry><constant>WNOHANG</constant></entry>
<entry>
子プロセスが終了していない場合に直ちに処理を返します。
</entry>
</row>
<row>
<entry><constant>WUNTRACED</constant></entry>
<entry>
停止した子プロセスの場合に処理を返します。
そして、ステータスは報告されません。
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<function>pcntl_wait</function> は、終了した子プロセスの
プロセス ID を返します。エラーの場合は -1、(wait3 が使用可能なシステムで)
WNOHANG が使用され、子プロセスが利用できない場合に 0 を返します。
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>pcntl_fork</function></member>
<member><function>pcntl_signal</function></member>
<member><function>pcntl_wifexited</function></member>
<member><function>pcntl_wifstopped</function></member>
<member><function>pcntl_wifsignaled</function></member>
<member><function>pcntl_wexitstatus</function></member>
<member><function>pcntl_wtermsig</function></member>
<member><function>pcntl_wstopsig</function></member>
<member><function>pcntl_waitpid</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
-->