inotify
PECL 확장자를 사용하여 PHP로 작성된 파일 모니터링 데몬에서 작업하고 있습니다. inotify
이벤트가 발생하면 알려주므로 거의 끝났습니다. 내가 제대로 이해한다면PHP Inotify - 정수 값에서 비트 마스크 확인
Array
(
[0] => Array
(
[wd] => 2
[mask] => 1073741840
[cookie] => 0
[name] => collaphoto
)
[1] => Array
(
[wd] => 2
[mask] => 1073741856
[cookie] => 0
[name] => filewatcher
)
[2] => Array
(
[wd] => 2
[mask] => 1073741840
[cookie] => 0
[name] => filewatcher
)
)
은, 각각의 서브 어레이는 해당 이벤트에 대한 정보, 개인 이벤트 :
inotify_read($fd)
의 반환 값
wd
은 inotify 인스턴스의 설명 자입니다.
mask
은 이벤트를 트리거 한 플래그의 정수 값입니다. 예 :
IN_ATTRIB
또는
IN_ACCESS
,
cookie
은이 이벤트를 대기열의 다른 이벤트에 연결하는 고유 ID이고
name
은 디렉토리 또는 파일입니다. 그것은 바뀌었다.
name
은 디렉토리가
inotify
으로 감시되는 경우에만 제공됩니다.
제 질문은 비트 마스크가 mask
값을 기반으로 트리거 된 것을 어떻게 알아낼 수 있습니까? Bit Masks를 다루는 데는 아직 경험이 거의 없으므로 쉽게 해결할 수 있습니다. 우리는 일정한 모델 변경 처리하기위한 괜찮은 전략을 마련하기 위해 매우 자주 발생하고 어려울 수있는 이벤트에 대해 얘기하고 있기 때문에
흠 ... 나는이 작업을 수행하는 우아한 방법을 생각하려고 해요. 상수 이름을 가진 배열을 만든 다음 루프를 반복하고 $ key => $ value 형식의 foreach 루프를 찾을 때까지 비교해 보았습니까? – Zarathuztra
아이디어가 있어요. 나는 그걸 시도 할 수도 있습니다. 또 다른 메모에서는 프로그램에서 어떤 이벤트를 청취 할 수 있는지를 알 수 있으므로 반복적으로 실행하고 플래그를 전환하여 매번 수신 대기하고 값을 기록하는 방법에 대해 생각했습니다. 그러나 들어야 할 깃발이 많이 있습니다. P – Goldentoa11
확실히! 필자는 파일 시스템을 모니터링하는 것에 대해 이야기하고 있기 때문에이 작업을 수행하는 최선의 최선의 방법을 알아 내려고 노력하고 있습니다. – Zarathuztra