首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

inotify_init

(PECL inotify >= 0.1.2)

inotify_init - 初始化一个inotify实例

描述

代码语言:javascript
复制
resource inotify_init ( void )

初始化inotify实例以用于inotify_add_watch()

返回值

流资源或FALSE错误。

例子

Example #1 Example usage of inotify

代码语言:javascript
复制
<?php
//?Open?an?inotify?instance
$fd?=?inotify_init();

//?Watch?__FILE__?for?metadata?changes?(e.g.?mtime)
$watch_descriptor?=?inotify_add_watch($fd,?__FILE__,?IN_ATTRIB);

//?generate?an?event
touch(__FILE__);

//?Read?events
$events?=?inotify_read($fd);
print_r($events);

//?The?following?methods?allows?to?use?inotify?functions?without?blocking?on?inotify_read():

//?-?Using?stream_select()?on?$fd:
$read?=?array($fd);
$write?=?null;
$except?=?null;
stream_select($read,$write,$except,0);

//?-?Using?stream_set_blocking()?on?$fd
stream_set_blocking($fd,?0);
inotify_read($fd);?//?Does?no?block,?and?return?false?if?no?events?are?pending

//?-?Using?inotify_queue_len()?to?check?if?event?queue?is?not?empty
$queue_len?=?inotify_queue_len($fd);?//?If?>?0,?inotify_read()?will?not?block

//?Stop?watching?__FILE__?for?metadata?changes
inotify_rm_watch($fd,?$watch_descriptor);

//?Close?the?inotify?instance
//?This?may?have?closed?all?watches?if?this?was?not?already?done
fclose($fd);

?>

上面的例子会输出类似于:

代码语言:javascript
复制
array(
  array(
    'wd' => 1,     // Equals $watch_descriptor
    'mask' => 4,   // IN_ATTRIB bit is set
    'cookie' => 0, // unique id to connect related events (e.g. 
                   // IN_MOVE_FROM and IN_MOVE_TO events)
    'name' => '',  // the name of a file (e.g. if we monitored changes
                   // in a directory)
  ),
);

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com