2009-05-18 1 views
2

Linux의 rhel5, 커널 2.6.18, glibc 2.5-18에서 iNotify를 사용하려고합니다. 이벤트를 원 샷으로 정의하지는 않았지만, 어떤 이유로 이벤트를 마치 내가 한 것처럼 동작합니다. 영향은 각 이벤트가 끝나면 시계를 다시 추가해야한다는 것입니다. 어떤 사람이 iNotify를 사용 했습니까? 또 다른 문제점은 이벤트 객체에 반환 된 마스크에 IN_ONE_SHOT 플래그가 하나만 포함되어 있다는 것입니다.Linux i shot 및 이벤트 마스크 문제를 간단하게 알립니다.

+0

작은 코드를 표시 할 수 있습니까? – Duck

+0

strace를 시도하십시오. 그것은 당신의 코드가 당신이 기대하는 시스템 호출을하고 있는지 확인하는 좋은 방법입니다. –

답변

0

가능한 가장 작은 예제를 작성하고 테스트하십시오. 당신이 말하고있는 행동을 보여 준다면 당신의 질문에 그것을 추가하십시오. 정상적으로 작동하면 코드를 조금 더 추가하고 다시 테스트하십시오. 오류가 재현되거나 코드가 작동 할 때까지 반복해서 반복하십시오. 종종 나는 장난감 프로그램을 만드는 것이 내가 큰 프로그램에서 볼 수 없었던 잘못된 것을 정확히 알려주고 있음을 발견합니다.

0

파일이 삭제되어 inotify가 암시 적으로 감시를 삭제할 가능성이 있습니다. 이 동작은 the manual page에 의해 미묘하게 참조됩니다 (IN_IGNORED 이벤트 섹션 참조). read에 대한 호출로 채워진 inotify_event 플래그 IN_IGNORED가 설정되어 있는지 확인하여 문제가 발생하는지 확인할 수 있습니다.

당신이 단지 수정이라고 생각하는 동안 귀하의 지식이나 조치없이 파일이 삭제 될 수있는 이유는 inotify delete_self when modifying and saving a file을 참조하십시오.