File: shmop.xml

package info (click to toggle)
phpdoc 20020310-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 35,272 kB
  • ctags: 354
  • sloc: xml: 799,767; php: 1,395; cpp: 500; makefile: 200; sh: 140; awk: 51
file content (331 lines) | stat: -rw-r--r-- 10,783 bytes parent folder | download
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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
<?xml version="1.0" encoding="iso-8859-2"?>
<reference id="ref.shmop">
  <title>Funkce pro prci se sdlenou pamt</title>
  <titleabbrev>shmop</titleabbrev>

  <partintro>
   <para>
    Shmop snadno pouiteln sada funkc, kter PHP umouje st, zapisovat,
    vytvet a mazat segmenty UNIXov sdlen pamti. Tyto funkce na Windows
    nefunguj, protoe tento systm nepodporuje sdlenou pam. Pokud chcete
    shmop pouvat, budete muset PHP zkompilovat s <option
    role="configure">--enable-shmop</option>.
   </para>
   <note>
    <simpara>
     Nzvy funkc popisovanch v tto kapitole zanaj v PHP 4.0.3 na
     <function>shm_</function>, ale od PHP 4.0.4 se jejich nzvy zmnily na
     <function>shmop_</function>.
    </simpara>
   </note>
   <para>
    <example>
     <title>Pehled operac se sdlenou pamt</title>
     <programlisting role="php">
&lt;?php

// Vytvoit 100 bytov blok sdlen pamti se system id 0xff3
$shm_id = shmop_open(0xff3, "c", 0644, 100);
if(!$shm_id) {
	echo "Nepodailo se vytvoit segment sdlen pamti\n";
}

// Zjistit velikost bloku sdlen pamti
$shm_size = shmop_size($shm_id);
echo "SHM blok o velikosti : ".$shm_size. " byl vytvoen.\n";

// Zapeme do sdlen pamti zkuebn etzec
$shm_bytes_written = shmop_write($shm_id, "my shared memory block", 0);
if($shm_bytes_written != strlen("mj blok sdlen pamti")) {
	echo "Nepodailo se zapsat kompletn data\n";
}

// Nateme etzec zptky
$my_string = shmop_read($shm_id, 0, $shm_size);
if(!$my_string) {
	echo "Nepodailo se st z bloku sdlen pamti\n";
}
echo "Data ve sdlen pamti byla: ".$my_string."\n";

//Smaeme tento blok a zaveme segment sdlen pamti
if(!shmop_delete($shm_id)) {
	echo "Nepodailo se smazat blok sdlen pamti.";
}
shmop_close($shm_id);

?&gt;
     </programlisting>
    </example>
   </para>
  </partintro>

  <refentry id="function.shmop_open">
   <refnamediv>
    <refname>shmop_open</refname>
    <refpurpose>Vytvoit nebo otevt blok sdlen pamti</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Popis</title>
     <methodsynopsis>
      <type>int</type><methodname>shmop_open</methodname>
      <methodparam><type>int</type><parameter>key</parameter></methodparam>
      <methodparam><type>string</type><parameter>flags</parameter></methodparam>
      <methodparam><type>int</type><parameter>mode</parameter></methodparam>
      <methodparam><type>int</type><parameter>size</parameter></methodparam>
     </methodsynopsis>
    <para>
     <function>shmop_open</function> vytvo nebo oteve blok sdlen pamti.
    </para>
    <para>
     <function>shmop_open</function> pijm 4 argumenty: kl, co je system id
     bloku sdlen pamti; tento argument me bt pedn jako destkov nebo
     hexadecimln slo. Druh argument jsou parametry:
     <itemizedlist>
      <listitem>
       <simpara>
        "a" pro pstup (nastavuje IPC_EXCL)
        tento parametr pouijte, pokud chcete otevt existujc segment sdlen
        pamti
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        "c" pro vytvoen (nastavuje IPC_CREATE)
        tento parametr pouijte, pokud chcete vytvoit nov segment sdlen pamti
       </simpara>
      </listitem>
     </itemizedlist>
     Tet argument je md, co jsou pstupov prva, kter chcete tomuto
     segmentu piadit; jsou stejn jako prva pro soubory. Pstupov prva
     mus bt pedna jako oktalov slo, nap. 0644. Posledn argument je
     velikost bloku sdlen pamti, kter chcete vytvoit, v bytech.
     <note><simpara>
      Pozn.: Pokud otvrte existujc segment pamti, 3. 4. argument by mly bt
      pedny jako 0. Pi spchu <function>shmop_open</function> vrac id,
      kter mete pout k pstupu na tento segment sdlen pamti.
     </simpara></note>
    </para>
    <para>
     <example>
      <title>Vytvoen bloku sdlen pamti</title>
      <programlisting role="php">
&lt;?php
$shm_id = shmop_open(0x0fff, "c", 0644, 100);
?&gt;
      </programlisting>
     </example>
    </para>
    <para>
     Tato ukzka otevela blok sdlen pamti se system id 0x0fff.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.shmop_read">
   <refnamediv>
    <refname>shmop_read</refname>
    <refpurpose>Pest data z bloku sdlen pamti</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Popis</title>
     <methodsynopsis>
      <type>string</type><methodname>shmop_read</methodname>
      <methodparam><type>int</type><parameter>shmid</parameter></methodparam>
      <methodparam><type>int</type><parameter>start</parameter></methodparam>
      <methodparam><type>int</type><parameter>count</parameter></methodparam>
     </methodsynopsis>
    <para>
     <function>shmop_read</function> te etzec z bloku sdlen pamti.
    </para>
    <para>
     <function>shmop_read</function> pijm 3 argumenty:
     <parameter>shmid</parameter>, co je id bloku sdlen pamti vytvoenho
     funkc <function>shmop_open</function>, <parameter>start</parameter>, co
     je offset na kterm m ten zat, a <parameter>count</parameter>, co je
     poet byt, kter se maj pest.
    </para>
    <para>
     <example>
      <title>ten bloku sdlen pamti</title>
      <programlisting role="php">
&lt;?php
$shm_data = shmop_read($shm_id, 0, 50);
?&gt;
      </programlisting>
     </example>
    </para>
    <para>
     Tato ukzka pete z bloku sdlen pamti 50 byt a umst naten data
     do <literal>$shm_data</literal>.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.shmop_write">
   <refnamediv>
    <refname>shmop_write</refname>
     <refpurpose>Zapsat data do bloku sdlen pamti</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Popis</title>
      <methodsynopsis>
       <type>int</type><methodname>shmop_write</methodname>
       <methodparam><type>int</type><parameter>shmid</parameter></methodparam>
       <methodparam><type>string</type><parameter>data</parameter></methodparam>
       <methodparam><type>int</type><parameter>offset</parameter></methodparam>
      </methodsynopsis>
     <para>
      <function>shmop_write</function> zape etzec do bloku sdlen pamti.
     </para>
     <para>
      <function>shmop_write</function> pijm 3 argumenty:
     <parameter>shmid</parameter>, co je id bloku sdlen pamti vytvoenho
     funkc <function>shmop_open</function>, <parameter>data</parameter>, co je
     etzec, kter se zape do bloku sdlen pamti, a
     <parameter>offset</parameter>, co je offset na kterm m zpis zat.
     </para>
     <para>
      <example>
      <title>Zpis do bloku sdlen pamti</title>
      <programlisting role="php">
&lt;?php
$shm_bytes_written = shmop_write($shm_id, $my_string, 0);
?&gt;
      </programlisting>
     </example>
    </para>
    <para>
     Tato ukzka zape data obsaen v <literal>$my_string</literal> do bloku
     sdlen pamti, a <literal>$shm_bytes_written</literal> obsahuje poet
     zapsanch byt.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.size">
  <refnamediv>
   <refname>shmop_size</refname>
   <refpurpose>Zjistit velikost bloku sdlen pamti</refpurpose>
  </refnamediv>
  <refsect1>
   <title>Popis</title>
    <methodsynopsis>
     <type>int</type><methodname>shmop_size</methodname>
     <methodparam><type>int</type><parameter>shmid</parameter></methodparam>
    </methodsynopsis>
    <para>
     <function>shmop_size</function> se pouv ke zjitn velikosti bloku
     sdlen pamti v bytech.
    </para>
    <para>
     <function>shmop_size</function> pijm <parameter>shmid</parameter>, co je
     idenfifiktor vytvoen funkc <function>shmop_open</function>.
     <function>shmop_size</function> vrac integer pedstavujc poet byt,
     kter blok sdlen pamti zabr.
    </para>
    <para>
     <example>
      <title>Zjitn velikosti bloku sdlen pamti</title>
      <programlisting role="php">
&lt;?php
$shm_size = shmop_size($shm_id);
?&gt;
      </programlisting>
     </example>
    </para>
    <para>
     Tato ukzka zape velikost bloku sdlen pamti urenho identifiktorem
     <literal>$shm_id</literal> do <literal>$shm_size</literal>.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.shmop_delete">
   <refnamediv>
    <refname>shmop_delete</refname>
    <refpurpose>Smazat blok sdlen pamti</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Popis</title>
     <methodsynopsis>
      <type>int</type><methodname>shmop_delete</methodname>
      <methodparam><type>int</type><parameter>shmid</parameter></methodparam>
     </methodsynopsis>
    <para>
     <function>shmop_delete</function> se pouv ke smazn bloku sdlen pamti.
    </para>
    <para>
     <function>shmop_delete</function> pijm <parameter>shmid</parameter>,
     co je identifiktor bloku sdlen pamti vytvoen funkc
     <function>shmop_open</function>. Pi spchu vrac 1, jinak 0.
    </para>
    <para>
     <example>
      <title>Smazn bloku sdlen pamti</title>
      <programlisting role="php">
&lt;?php
shmop_delete($shm_id);
?&gt;
      </programlisting>
     </example>
    </para>
    <para>
     Tato ukzka smae blok sdlen pamti pojmenovan <literal>$shm_id</literal>.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.shmop_close">
   <refnamediv>
    <refname>shmop_close</refname>
    <refpurpose>Zavt blok sdlen pamti</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Popis</title>
     <methodsynopsis>
      <type>int</type><methodname>shmop_close</methodname>
      <methodparam><type>int</type><parameter>shmid</parameter></methodparam>
     </methodsynopsis>
    <para>
     <function>shmop_close</function> se pouv k zaven bloku sdlen pamti.
    </para>
    <para>
     <function>shmop_close</function> pijm <parameter>shmid</parameter>,
     co je identifiktor bloku sdlen pamti vytvoen funkc
     <function>shmop_open</function>.
    </para>
    <para>
     <example>
      <title>Zaven bloku sdlen pamti</title>
      <programlisting role="php">
&lt;?php
shmop_close($shm_id);
?&gt;
      </programlisting>
     </example>
    </para>
    <para>
     Tato ukzka zave blok sdlen pamti pojmenovan <literal>$shm_id</literal>.
    </para>
   </refsect1>
  </refentry>
 </reference>

<!-- 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:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->