라이브러리

[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` 함수: 파일 디스크립터를 닫습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 452 페이지

검색

게시물 검색