File: dio.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 (385 lines) | stat: -rw-r--r-- 14,548 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
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision: 1.2 $ -->
 <reference id="ref.dio">
  <title>ダイレクトIO(DIO)関数</title>
  <titleabbrev>DIO関数</titleabbrev>

  <partintro>
   <section id="dio.intro">
    <title>ダイレクトI/O関数</title>
    <para>
     PHPは、POSIX標準(第6章)に記述されたダイレクトIO関数をサポートしま
     す。これらは、C言語のストリームI/O関数(fopen, fread,..)よりも低レ
     ベルのI/O関数の実装です。
    </para>
   </section>

   <section id="dio.installation">
    <title>インストール</title>
    <para>
     これらの関数を動作させるには、<option
     role="configure">--enable-dio</option>を付けてPHPのconfigureを行
     う必要があります。
    </para>
   </section>
  </partintro>
 
  <refentry id="function.dio-open">
   <refnamediv>
    <refname>dio_open</refname>
    <refpurpose>
     許可属性flagsと作成許可属性modeを指定して新規にfilenameをオープン
     する
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>resource</type><methodname>dio_open</methodname>
      <methodparam><type>string</type><parameter>filename</parameter></methodparam>
      <methodparam><type>int</type><parameter>flags</parameter></methodparam>
      <methodparam choice="opt"><type>int</type><parameter>mode</parameter></methodparam>
     </methodsynopsis>
    <para>
     <function>dio_open</function>は、ファイルをオープンし、そのファイ
     ル記述子を返します。何らかのエラーが発生した場合は、-1を返します。
     <parameter>flags</parameter>がO_CREATの場合、オプションの3番目の
     パラメータ<parameter>mode</parameter>がファイルのモード(作成許可
     属性)を設定します。<parameter>flags</parameter>パラメータは、以下
     のオプションのどれかとします。
     <itemizedlist>
      <listitem>
       <para>O_RDONLY - 読み込みアクセスでファイルをオープン</para>
      </listitem>
      <listitem>
       <para>O_WRONLY - 書き込みアクセスでファイルをオープン</para>
      </listitem>
      <listitem>
       <para>
        O_RDWR - 読み書き両用でファイルをオープン
       </para>
      </listitem>
     </itemizedlist>
     <parameter>flags</parameter>パラメータには、以下のフラグの組み合
     わせを含めることができます。
     <itemizedlist>
      <listitem>
       <para>
        O_CREAT - ファイルが存在しない場合は作成します。
       </para>
      </listitem> 
      <listitem>
       <para>
        O_EXCL - O_CREATとO_EXCLが両方とも設定された場合、ファイルが既
        に存在すると<function>dio_open</function>は失敗します。
       </para>
      </listitem> 
      <listitem>
       <para>
        O_TRUNC - ファイルが存在し、書き込みアクセスでオープンされる場
        合には、ファイルは長さゼロに丸められます。
       </para>
      </listitem>
      <listitem>
       <para>
        O_APPEND - ファイルの後端にデータを書き込みます。
       </para>
      </listitem> 
      <listitem>
       <para>
        O_NONBLOCK - 非ブロッキングモードに設定します。
       </para>
      </listitem>
     </itemizedlist>
    </para>
   </refsect1>
  </refentry>
	
  <refentry id="function.dio-read">
   <refnamediv>
    <refname>dio_read</refname>
    <refpurpose>
     fdからnバイト読みこんで返す。nが指定されない場合は、1kブロックを
     読みこむ
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>string</type><methodname>dio_read</methodname>
      <methodparam><type>resource</type><parameter>fd</parameter></methodparam>
      <methodparam choice="opt"><type>int</type><parameter>n</parameter></methodparam>
     </methodsynopsis>
    <para>
     関数<function>dio_read</function>は、記述子
     <parameter>resource</parameter>から<parameter>n</parameter>バイト
     を読み込んで返します。<parameter>n</parameter>が指定されない場合、
     <function>dio_read</function>は1kサイズのブロックを読み込んで返し
     ます。
    </para>
   </refsect1>
  </refentry>
	
  <refentry id="function.dio-write">
   <refnamediv>
    <refname>dio_write</refname>
    <refpurpose>
     オプションで丸め長さを指定してデータを書き込む
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>int</type><methodname>dio_write</methodname>
      <methodparam><type>resource</type><parameter>fd</parameter></methodparam>
      <methodparam><type>string</type><parameter>data</parameter></methodparam>
      <methodparam choice="opt"><type>int</type><parameter>len</parameter></methodparam>
     </methodsynopsis>
    <para>
     関数<function>dio_write</function>は、<parameter>data</parameter>
     からファイル<parameter>fd</parameter>に最大
     <parameter>len</parameter>バイトを書き込みます。
     <parameter>len</parameter>が指定されない場合、
     <function>dio_write</function>は指定したファイルに
     <parameter>data</parameter>を全て書き込みます。
     <function>dio_write</function>は、<parameter>fd</parameter>に書き
     込んだバイト数を返します。
    </para>
   </refsect1>
  </refentry>
	
  <refentry id="function.dio-truncate">
   <refnamediv>
    <refname>dio_truncate</refname>
    <refpurpose>
     ファイル記述子fdをオフセットバイトへ丸める
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>bool</type><methodname>dio_truncate</methodname>
      <methodparam><type>resource</type><parameter>fd</parameter></methodparam>
      <methodparam><type>int</type><parameter>offset</parameter></methodparam>
     </methodsynopsis>
    <para>
     関数<function>dio_truncate</function>は、
     <parameter>fd</parameter>で参照されるファイルを最大
     <parameter>offset</parameter>バイトの大きさに丸めます。このファイ
     ルが指定した大きさよりも大きかった場合には、余分なデータが失われ
     ます。ファイルがより小さかった場合、変更されないか、拡張されるか
     は不確定です。後者の場合、拡張される部分は、ゼロバイトとして読ま
     れます。成功時に0、その他の場合に-1を返します。
    </para>
   </refsect1>
  </refentry>
	
  <refentry id="function.dio-stat">
   <refnamediv>
    <refname>dio_stat</refname>
    <refpurpose>
     ファイル記述子fdに関するstat情報を取得する
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>array</type><methodname>dio_stat</methodname>
      <methodparam><type>resource</type><parameter>fd</parameter></methodparam>
     </methodsynopsis>
    <para>
     関数<function>dio_stat</function>は、ファイル記述子
     <parameter>fd</parameter>に関する情報を返します。
     <function>dio_stat</function>は、以下のキーを有する連想配列を返し
     ます。
     <itemizedlist>
      <listitem><para>"device" - device</para></listitem>
      <listitem><para>"inode" - inode</para></listitem>
      <listitem><para>"mode" - mode</para></listitem>
      <listitem><para>"nlink" - ハードリンクの数</para></listitem>
      <listitem><para>"uid" - ユーザID</para></listitem>
      <listitem><para>"gid" - グループID</para></listitem>
      <listitem>
       <para>
        "device_type" - デバイス型 (inodeデバイスの場合)
       </para>
      </listitem>
      <listitem><para>"size" - バイト数単位のサイズ</para></listitem>
      <listitem><para>"blocksize" - ブロック長</para></listitem>
      <listitem><para>"blocks" - 確保されたブロックの数</para></listitem>
      <listitem><para>"atime" - 直近のアクセス時刻</para></listitem>
      <listitem><para>"mtime" - 直近の修整時刻</para></listitem>
      <listitem><para>"ctime" - 直近の変更時刻</para></listitem>
     </itemizedlist>
     エラー時に<function>dio_stat</function>は、NULLを返します。
    </para>
   </refsect1>
  </refentry>
	
  <refentry id="function.dio-seek">
   <refnamediv>
    <refname>dio_seek</refname>
    <refpurpose>fd上でwhenceからposに移動する</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>int</type><methodname>dio_seek</methodname>
      <methodparam><type>resource</type><parameter>fd</parameter></methodparam>
      <methodparam><type>int</type><parameter>pos</parameter></methodparam>
      <methodparam><type>int</type><parameter>whence</parameter></methodparam>
     </methodsynopsis>
    <para>
     関数<function>dio_seek</function>は、記述子
     <parameter>resource</parameter>を有するファイルのファイル位置を変
     更する際に使用されます。パラメータ<parameter>whence</parameter>は、
     位置<parameter>pos</parameter>の記述方式を指定します。
     <itemizedlist>
      <listitem>
       <para>
        SEEK_SET - <parameter>pos</parameter>がファイル先頭からの位置
        であることを指定します。
       </para>
      </listitem>
      <listitem>
       <para>
        SEEK_CUR - <parameter>pos</parameter>がカレントのファイル位置
        からの文字数であることを指定します。このカウントは正または負で
        す。
       </para>
      </listitem>
      <listitem>
       <para>
        SEEK_END - <parameter>pos</parameter>がファイル終端からの文字
        数であることを指定します。負のcountは、カレントのファイルの範
        囲内に位置を指定します。正のcountは、カレントの終端を過ぎた位
        置を指定します。カレントの終端を位置を指定し、データを実際に書
        き込んだ場合、ファイルはその位置までゼロバイトで埋めて拡張され
        ます。
       </para>
      </listitem>
     </itemizedlist>
    </para>
   </refsect1>
  </refentry>
	
  <refentry id="function.dio-fcntl">
   <refnamediv>
    <refname>dio_fcntl</refname>
    <refpurpose>fdについてCライブラリのfcntlを実行する</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>mixed</type><methodname>dio_fcntl</methodname>
      <methodparam><type>resource</type><parameter>fd</parameter></methodparam>
      <methodparam><type>int</type><parameter>cmd</parameter></methodparam>
      <methodparam choice="opt"><type>mixed</type><parameter>arg</parameter></methodparam>
     </methodsynopsis>
    <para>
     関数<function>dio_fcntl</function>は、ファイル記述子
     <parameter>fd</parameter>において<parameter>cmd</parameter>で指定
     された処理を行います。いくつかのコマンドでは、オプションの引数
     <parameter>args</parameter>の指定が必要となります。
    </para>
    <para>
     <parameter>cmd</parameter>がF_SETLKまたはF_SETLLWの場合、
     <parameter>arg</parameter>は連想配列で、以下のキーを有します。
     <itemizedlist>
      <listitem>
       <para>
        "start" - ロック開始場所からのオフセット
       </para>
      </listitem>
      <listitem>
       <para>
        "length" - ロック領域の大きさ。0はファイル終端を意味します。
       </para>
      </listitem>
      <listitem>
       <para>
        "wenth" - l_startの相対位置指定: SEEK_SET, SEEK_END, SEEK_CUR
        のどれかとします。
       </para>
      </listitem>
      <listitem>
       <para>
        "type" - ロックの種類: F_RDLCK (読み込みロック), F_WRLCK
        (書き込みロック),  F_UNLCK (ロック解除)のどれかとします。
       </para>
      </listitem>
     </itemizedlist>
    </para>
    <para>
     <parameter>cmd</parameter>は以下の処理のどれかとします。
     <itemizedlist>
      <listitem>
       <para>
        F_SETLK - ロックは設定またはクリアされます。lockが他の誰かに設
        定されている場合、<function>dio_fcntl</function>は-1を返します。
       </para>
      </listitem>
      <listitem>
       <para>
        F_SETLKW - F_SETLKと似ていますが、ロックが他の誰かに設定されて
        いる場合、<function>dio_fcntl</function>はそのロックが解放され
        るまで待ちます。
       </para>
      </listitem>
      <listitem>
       <para>
        F_GETLK - <function>dio_fcntl</function>は、他の誰かがロックを
        妨げる場合、(上記の)連想配列を返します。妨げるものがない場合、
        キー"type"はF_UNLCKに設定されます。
       </para>
      </listitem>
      <listitem>
       <para>
        F_DUPFD - <parameter>arg</parameter>以上で最小の数値の利用可能
        なファイル記述子を探して返します。
       </para>
      </listitem>
     </itemizedlist>
    </para>
   </refsect1>
  </refentry>
	
  <refentry id="function.dio-close">
   <refnamediv>
    <refname>dio_close</refname>
    <refpurpose>fdで指定したファイル記述子を閉じる</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>void</type><methodname>dio_close</methodname>
      <methodparam><type>resource</type><parameter>fd</parameter></methodparam>
     </methodsynopsis>
    <para>
     関数<function>dio_close</function>は、ファイル記述子
     <parameter>resource</parameter>を閉じます。
    </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:
-->