라이브러리
[PHP] inotify_add_watch - 초기화된 inotify 인스턴스에 watch 추가
PHP에서 inotify_add_watch 사용하기
PHP에서 `inotify_add_watch` 함수는 Linux의 `inotify` 시스템 콜을 호출하여 파일이나 디렉토리에 대한 감시를 설정합니다. 이 함수는 PHP 5.3.3 이상에서 사용할 수 있습니다.
# inotify_add_watch 함수의 사용법
`inotify_add_watch` 함수는 다음 형식으로 사용됩니다.
#hostingforum.kr
php
inotify_add_watch($fd, $pathname, $events)
* `$fd`: 감시할 파일 디스크립터입니다. 이 값은 `inotify_init` 함수로 얻을 수 있습니다.
* `$pathname`: 감시할 파일이나 디렉토리의 경로입니다.
* `$events`: 감시할 이벤트의 목록입니다. 다음 값 중 하나 이상을 사용할 수 있습니다.
+ `IN_ACCESS`: 파일에 접근할 때 감지
+ `IN_MODIFY`: 파일의 내용이 변경될 때 감지
+ `IN_ATTRIB`: 파일의 속성이 변경될 때 감지
+ `IN_CLOSE_WRITE`: 파일을 쓰고 닫을 때 감지
+ `IN_CLOSE_NOWRITE`: 파일을 읽고 닫을 때 감지
+ `IN_CREATE`: 파일이나 디렉토리가 생성될 때 감지
+ `IN_DELETE`: 파일이나 디렉토리가 삭제될 때 감지
+ `IN_DELETE_SELF`: 감시 대상이 삭제될 때 감지
+ `IN_MOVE_SELF`: 감시 대상이 이동될 때 감지
+ `IN_MOVED_FROM`: 파일이나 디렉토리가 이동될 때 감지
+ `IN_MOVED_TO`: 파일이나 디렉토리가 이동될 때 감지
+ `IN_OPEN`: 파일을 열 때 감지
+ `IN_Q_OVERFLOW`: 감시할 이벤트가 너무 많을 때 감지
+ `IN_UNMOUNT`: 감시 대상이 언마운트될 때 감지
# 예제
다음 예제는 `inotify_add_watch` 함수를 사용하여 `/var/log` 디렉토리에서 파일이 생성되거나 삭제될 때 감지를 설정하는 방법을 보여줍니다.
#hostingforum.kr
php
<?php
// inotify_init 함수로 파일 디스크립터를 얻습니다.
$fd = inotify_init();
// 감시할 디렉토리와 이벤트를 지정합니다.
$pathname = '/var/log';
$events = IN_CREATE | IN_DELETE;
// inotify_add_watch 함수로 감시를 설정합니다.
$watch_id = inotify_add_watch($fd, $pathname, $events);
// 감시를 설정한 후, 감시할 이벤트가 발생할 때마다 감지할 함수를 등록합니다.
$events = array();
while (true) {
$events = inotify_read($fd);
foreach ($events as $event) {
// 감시할 이벤트가 발생했을 때, 이벤트의 타입과 경로를 출력합니다.
switch ($event['mask']) {
case IN_CREATE:
echo "파일이 생성되었습니다: $event[path]
";
break;
case IN_DELETE:
echo "파일이 삭제되었습니다: $event[path]
";
break;
}
}
}
// inotify_remove_watch 함수로 감시를 해제합니다.
inotify_remove_watch($fd, $watch_id);
// inotify_close 함수로 파일 디스크립터를 닫습니다.
inotify_close($fd);
?>
이 예제는 `/var/log` 디렉토리에서 파일이 생성되거나 삭제될 때 감지를 설정하고, 감시할 이벤트가 발생할 때마다 감지할 함수를 등록합니다. 감시를 설정한 후, 감시할 이벤트가 발생할 때마다 감지할 함수를 등록합니다. 감시를 해제하고, 파일 디스크립터를 닫습니다.
# 참고
* `inotify_init` 함수: inotify를 초기화하고 파일 디스크립터를 반환합니다.
* `inotify_add_watch` 함수: 감시를 설정합니다.
* `inotify_remove_watch` 함수: 감시를 해제합니다.
* `inotify_read` 함수: 감시할 이벤트를 읽습니다.
* `inotify_close` 함수: 파일 디스크립터를 닫습니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.