PageRenderTime 26ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/php/function.inotify-init.html

https://bitbucket.org/thncr/manuals
HTML | 93 lines | 80 code | 13 blank | 0 comment | 0 complexity | 948601f0c6dfbcea688f42d783f66e4d MD5 | raw file
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  5. <title>Initialize an inotify instance</title>
  6. </head>
  7. <body><div class="manualnavbar" style="text-align: center;">
  8. <div class="prev" style="text-align: left; float: left;"><a href="function.inotify-add-watch.html">inotify_add_watch</a></div>
  9. <div class="next" style="text-align: right; float: right;"><a href="function.inotify-queue-len.html">inotify_queue_len</a></div>
  10. <div class="up"><a href="ref.inotify.html">Inotify 函数</a></div>
  11. <div class="home"><a href="index.html">PHP Manual</a></div>
  12. </div><hr /><div id="function.inotify-init" class="refentry">
  13. <div class="refnamediv">
  14. <h1 class="refname">inotify_init</h1>
  15. <p class="verinfo">(PECL inotify &gt;= 0.1.2)</p><p class="refpurpose"><span class="refname">inotify_init</span> &mdash; <span class="dc-title">Initialize an inotify instance</span></p>
  16. </div>
  17. <div class="refsect1 description" id="refsect1-function.inotify-init-description">
  18. <h3 class="title">说明</h3>
  19. <div class="methodsynopsis dc-description">
  20. <span class="type">resource</span> <span class="methodname"><strong>inotify_init</strong></span>
  21. ( <span class="methodparam">void</span>
  22. )</div>
  23. <p class="para rdfs-comment">
  24. Initialize an inotify instance for use with
  25. <span class="function"><a href="function.inotify-add-watch.html" class="function">inotify_add_watch()</a></span>
  26. </p>
  27. </div>
  28. <div class="refsect1 returnvalues" id="refsect1-function.inotify-init-returnvalues">
  29. <h3 class="title">返回值</h3>
  30. <p class="para">
  31. A stream resource or <strong><code>FALSE</code></strong> on error.
  32. </p>
  33. </div>
  34. <div class="refsect1 examples" id="refsect1-function.inotify-init-examples">
  35. <h3 class="title">范例</h3>
  36. <p class="para">
  37. <div class="example" id="inotify-init.example.basic">
  38. <p><strong>Example #1 Example usage of inotify</strong></p>
  39. <div class="example-contents">
  40. <div class="phpcode"><code><span style="color: #000000">
  41. <span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">//&nbsp;Open&nbsp;an&nbsp;inotify&nbsp;instance<br /></span><span style="color: #0000BB">$fd&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">inotify_init</span><span style="color: #007700">();<br /><br /></span><span style="color: #FF8000">//&nbsp;Watch&nbsp;__FILE__&nbsp;for&nbsp;metadata&nbsp;changes&nbsp;(e.g.&nbsp;mtime)<br /></span><span style="color: #0000BB">$watch_descriptor&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">inotify_add_watch</span><span style="color: #007700">(</span><span style="color: #0000BB">$fd</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">__FILE__</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">IN_ATTRIB</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">//&nbsp;generate&nbsp;an&nbsp;event<br /></span><span style="color: #0000BB">touch</span><span style="color: #007700">(</span><span style="color: #0000BB">__FILE__</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">//&nbsp;Read&nbsp;events<br /></span><span style="color: #0000BB">$events&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">inotify_read</span><span style="color: #007700">(</span><span style="color: #0000BB">$fd</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$events</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">//&nbsp;The&nbsp;following&nbsp;methods&nbsp;allows&nbsp;to&nbsp;use&nbsp;inotify&nbsp;functions&nbsp;without&nbsp;blocking&nbsp;on&nbsp;inotify_read():<br /><br />//&nbsp;-&nbsp;Using&nbsp;stream_select()&nbsp;on&nbsp;$fd:<br /></span><span style="color: #0000BB">$read&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #0000BB">$fd</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$write&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">null</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$except&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">null</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">stream_select</span><span style="color: #007700">(</span><span style="color: #0000BB">$read</span><span style="color: #007700">,</span><span style="color: #0000BB">$write</span><span style="color: #007700">,</span><span style="color: #0000BB">$except</span><span style="color: #007700">,</span><span style="color: #0000BB">0</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">//&nbsp;-&nbsp;Using&nbsp;stream_set_blocking()&nbsp;on&nbsp;$fd<br /></span><span style="color: #0000BB">stream_set_blocking</span><span style="color: #007700">(</span><span style="color: #0000BB">$fd</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">inotify_read</span><span style="color: #007700">(</span><span style="color: #0000BB">$fd</span><span style="color: #007700">);&nbsp;</span><span style="color: #FF8000">//&nbsp;Does&nbsp;no&nbsp;block,&nbsp;and&nbsp;return&nbsp;false&nbsp;if&nbsp;no&nbsp;events&nbsp;are&nbsp;pending<br /><br />//&nbsp;-&nbsp;Using&nbsp;inotify_queue_len()&nbsp;to&nbsp;check&nbsp;if&nbsp;event&nbsp;queue&nbsp;is&nbsp;not&nbsp;empty<br /></span><span style="color: #0000BB">$queue_len&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">inotify_queue_len</span><span style="color: #007700">(</span><span style="color: #0000BB">$fd</span><span style="color: #007700">);&nbsp;</span><span style="color: #FF8000">//&nbsp;If&nbsp;&gt;&nbsp;0,&nbsp;inotify_read()&nbsp;will&nbsp;not&nbsp;block<br /><br />//&nbsp;Stop&nbsp;watching&nbsp;__FILE__&nbsp;for&nbsp;metadata&nbsp;changes<br /></span><span style="color: #0000BB">inotify_rm_watch</span><span style="color: #007700">(</span><span style="color: #0000BB">$fd</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$watch_descriptor</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">//&nbsp;Close&nbsp;the&nbsp;inotify&nbsp;instance<br />//&nbsp;This&nbsp;may&nbsp;have&nbsp;closed&nbsp;all&nbsp;watches&nbsp;if&nbsp;this&nbsp;was&nbsp;not&nbsp;already&nbsp;done<br /></span><span style="color: #0000BB">fclose</span><span style="color: #007700">(</span><span style="color: #0000BB">$fd</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">?&gt;</span>
  42. </span>
  43. </code></div>
  44. </div>
  45. <div class="example-contents"><p>以上例程的输出类似于</p></div>
  46. <div class="example-contents screen">
  47. <div class="cdata"><pre>
  48. array(
  49. array(
  50. &#039;wd&#039; =&gt; 1, // Equals $watch_descriptor
  51. &#039;mask&#039; =&gt; 4, // IN_ATTRIB bit is set
  52. &#039;cookie&#039; =&gt; 0, // unique id to connect related events (e.g.
  53. // IN_MOVE_FROM and IN_MOVE_TO events)
  54. &#039;name&#039; =&gt; &#039;&#039;, // the name of a file (e.g. if we monitored changes
  55. // in a directory)
  56. ),
  57. );
  58. </pre></div>
  59. </div>
  60. </div>
  61. </p>
  62. </div>
  63. <div class="refsect1 seealso" id="refsect1-function.inotify-init-seealso">
  64. <h3 class="title">参见</h3>
  65. <p class="para">
  66. <ul class="simplelist">
  67. <li class="member"> <span class="function"><a href="function.inotify-add-watch.html" class="function" rel="rdfs-seeAlso">inotify_add_watch()</a> - Add a watch to an initialized inotify instance</span></li>
  68. <li class="member"> <span class="function"><a href="function.inotify-rm-watch.html" class="function" rel="rdfs-seeAlso">inotify_rm_watch()</a> - Remove an existing watch from an inotify instance</span></li>
  69. <li class="member"> <span class="function"><a href="function.inotify-queue-len.html" class="function" rel="rdfs-seeAlso">inotify_queue_len()</a> - Return a number upper than zero if there are pending events</span></li>
  70. <li class="member"> <span class="function"><a href="function.inotify-read.html" class="function" rel="rdfs-seeAlso">inotify_read()</a> - Read events from an inotify instance</span></li>
  71. <li class="member"> <span class="function"><a href="function.fclose.html" class="function" rel="rdfs-seeAlso">fclose()</a> - 关闭一个已打开的文件指针</span></li>
  72. </ul>
  73. </p>
  74. </div>
  75. </div><hr /><div class="manualnavbar" style="text-align: center;">
  76. <div class="prev" style="text-align: left; float: left;"><a href="function.inotify-add-watch.html">inotify_add_watch</a></div>
  77. <div class="next" style="text-align: right; float: right;"><a href="function.inotify-queue-len.html">inotify_queue_len</a></div>
  78. <div class="up"><a href="ref.inotify.html">Inotify 函数</a></div>
  79. <div class="home"><a href="index.html">PHP Manual</a></div>
  80. </div></body></html>