-
Notifications
You must be signed in to change notification settings - Fork 44
/
Copy pathpopen.xml
156 lines (148 loc) · 4.51 KB
/
popen.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
156
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 0c9c2dd669fe9395eaa73d487fbd160f9057429a Maintainer: cmb Status: ready -->
<!-- Reviewed: yes -->
<!-- Rev-Revision: 1.0 Reviewer: samesch -->
<refentry xml:id="function.popen" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>popen</refname>
<refpurpose>Öffnet einen Dateizeiger für einen Prozess</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>resource</type><type>false</type></type><methodname>popen</methodname>
<methodparam><type>string</type><parameter>command</parameter></methodparam>
<methodparam><type>string</type><parameter>mode</parameter></methodparam>
</methodsynopsis>
<para>
Öffnet eine Pipe zu einem Prozess durch Forken des Befehls, der durch
<parameter>command</parameter> angegeben wurde.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>command</parameter></term>
<listitem>
<para>
Das Kommando
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>mode</parameter></term>
<listitem>
<para>
Der Modus. Entweder <literal>'r'</literal> zum Lesen, oder
<literal>'w'</literal> zum Schreiben.
</para>
<para>
Unter Windows ist <function>popen</function> standardmäßig auf den
Textmodus eingestellt, d. h. alle in die Pipe geschriebenen oder aus
ihr gelesenen <literal>\n</literal>-Zeichen werden in
<literal>\r\n</literal> übersetzt. Wenn dies nicht gewünscht ist, kann
der Binärmodus erzwungen werden, indem <parameter>mode</parameter> auf
<literal>'rb'</literal> bzw. <literal>'wb'</literal> gesetzt wird.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Gibt einen Dateizeiger zurück, der identisch ist mit dem, der bei der
Funktion <function>fopen</function> zurückgegeben wird, außer dass dieser
nur in eine Richtung funktioniert (entweder lesend oder schreibend) und mit
der Funktion <function>pclose</function> geschlossen werden muss. Dieser
Zeiger kann mit den Funktionen <function>fgets</function>,
<function>fgetss</function> und <function>fwrite</function> benutzt werden.
Ist der Modus 'r', ist der zurückgegebene Dateizeiger das STDOUT des
Kommandos; ist der Modus 'w', ist der zurückgegebene Dateizeiger das STDIN
des Kommandos.
</para>
<para>
Wenn ein Fehler auftritt, wird &false; zurückgegeben.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>popen</function>-Beispiel</title>
<programlisting role="php">
<![CDATA[
<?php
$handle = popen("/bin/ls", "r");
?>
]]>
</programlisting>
</example>
</para>
<para>
Wenn das auszuführende Kommando nicht gefunden werden konnte, wird eine
gültige Ressource zurückgegeben. Das mag seltsam erscheinen, ist aber
sinnvoll; es ermöglicht Ihnen, auf von der Konsole zurückgegebene
Fehlermeldungen zuzugreifen:
<example>
<title><function>popen</function>-Beispiel</title>
<programlisting role="php">
<![CDATA[
<?php
error_reporting(E_ALL);
/* Umleitung hinzufügen, sodass wir stderr erhalten können */
$handle = popen('/path/to/executable 2>&1', 'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Wenn Sie bidirektionale Unterstützung wünschen, verwenden Sie
<function>proc_open</function>.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>pclose</function></member>
<member><function>fopen</function></member>
<member><function>proc_open</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
-->