/
inotify-init.xml
135 lines (116 loc) · 3.66 KB
/
inotify-init.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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 37da852aa1f9b754fed577897efa509ef4d578e5 Maintainer: dams Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.inotify-init" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>inotify_init</refname>
<refpurpose>Initialise une instance inotify</refpurpose>
</refnamediv>
<refsect1 role="description"><!-- {{{ -->
&reftitle.description;
<methodsynopsis>
<type class="union"><type>resource</type><type>false</type></type><methodname>inotify_init</methodname>
<void />
</methodsynopsis>
<para>
Initialise une instance inotify pour utiliser avec la fonction
<function>inotify_add_watch</function>
</para>
</refsect1><!-- }}} -->
<refsect1 role="parameters">
&reftitle.parameters;
&no.function.parameters;
</refsect1>
<refsect1 role="returnvalues"><!-- {{{ -->
&reftitle.returnvalues;
<para>
Un flux ou &false; en cas d'erreur.
</para>
</refsect1><!-- }}} -->
<refsect1 role="examples"><!-- {{{ -->
&reftitle.examples;
<para>
<example xml:id="inotify-init.example.basic"><!-- {{{ -->
<title>Exemple d'utilisatio d'inotify</title>
<programlisting role="php">
<![CDATA[
<?php
// Crée une instance inotify
$fd = inotify_init();
// Surveille les modifications des métadonées du fichier __FILE__ (e.g. mtime)
$watch_descriptor = inotify_add_watch($fd, __FILE__, IN_ATTRIB);
// Génère un événement
touch(__FILE__);
// Lit les événements
$events = inotify_read($fd);
print_r($events);
// Les méthodes suivantes permettent d'utiliser les fonctions inotify sans bloquer sur inotify_read():
// - Utiliser stream_select() sur $fd:
$read = array($fd);
$write = null;
$except = null;
stream_select($read,$write,$except,0);
// - Utiliser stream_set_blocking() sur $fd
stream_set_blocking($fd, 0);
inotify_read($fd); // Does no block, and return false if no events are pending
// - Utiliser inotify_queue_len() pour vérifier la taille de la file d'attente
$queue_len = inotify_queue_len($fd); // If > 0, inotify_read() will not block
// Arrêt de la surveillance de __FILE__
inotify_rm_watch($fd, $watch_descriptor);
// Destruction de l'instance inotify
// Cela aurait arrêté toutes les surveillances si ce n'était pas déjà fait
fclose($fd);
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
array(
array(
'wd' => 1, // Egale le $watch_descriptor
'mask' => 4, // Le bit IN_ATTRIB est activé
'cookie' => 0, // identifiant uique pour relier des événements (e.g.
// IN_MOVE_FROM et IN_MOVE_TO)
'name' => '', // Le nom du fichier (e.g. si un dossier était sous surveillance)
),
);
]]>
</screen>
</example><!-- }}} -->
</para>
</refsect1><!-- }}} -->
<refsect1 role="seealso"><!-- {{{ -->
&reftitle.seealso;
<para>
<simplelist>
<member><function>inotify_add_watch</function></member>
<member><function>inotify_rm_watch</function></member>
<member><function>inotify_queue_len</function></member>
<member><function>inotify_read</function></member>
<member><function>fclose</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
-->