2011-03-02 6 views
3

BSD 기반 시스템에서 fcntl 함수에 대해 F_NOTIFY 플래그에 해당하는 사람이 있습니까? 이 플래그를 사용하면 파일 이벤트 (예 : 파일 열림, 파일 닫힘, 파일에 기록 된 바이트, 파일에서 읽은 바이트)에 대한 알림을 수신 할 수 있습니다. 이 플래그는 Linux에는 있지만 MACOSX (BSD 기반 시스템)에는 존재하지 않습니다. ;MACOSX (BSD) fcntl() 함수의 F_NOTIFY 플래그와 동일합니다.

파일 및 디렉토리 변경 통지 (dnotify를)

INT fcntl을 (INT (FD), INT cmd를 .../* 인수 * /) : 리눅스 남자에서

견적 FD 또는 포함 된 파일 중 하나로 언급 된 디렉토리 이 변경 될 때

F_NOTIFY (긴) (이후 리눅스 2.4) 알림을 제공합니다.

실제로 파일 이벤트를 수신 할 수있는 API이면 충분합니다.

F_NOTIFY에 대한 대체품이 있는지 누가 알 수 있습니까? 현재 kqueue(), kevent() 함수를 사용하는 것이 하나의 아이디어입니다.

답변

5

정확히 일치하는 것은 없습니다. EVFILT_VNODE 이벤트 필터가있는 kqueue()/kevent()은 OS X의 대체품입니다.

Linux에서도 F_NOTIFY는 inotify으로 대체되었습니다.