
inotify_read 함수는 파일 시스템 이벤트를 읽어들이는 함수로, 이벤트를 처리하는 방법은 다음과 같습니다.
1. 읽어들인 이벤트를 분석하여 이벤트 유형을 확인합니다. (예: 파일 생성, 삭제, 수정 등)
2. 이벤트 유형에 따라 적절한 처리 로직을 수행합니다. (예: 파일 생성 시, 해당 파일의 권한 및 소유권을 확인합니다.)
3. 이벤트를 처리한 후, inotify_read 함수를 다시 호출하여 다음 이벤트를 읽어들이는 것을 반복합니다.
inotify_read 함수의 return value는 다음과 같습니다.
- 성공 시: 읽어들인 이벤트의 수를 반환합니다.
- 실패 시: -1을 반환하며, errno 변수를 사용하여 오류 코드를 확인합니다.
예를 들어, 다음과 같이 inotify_read 함수를 사용하여 이벤트를 읽어들이고 처리할 수 있습니다.
#hostingforum.kr
c
#include
#include
#include
int main() {
int fd, len;
char buffer[1024];
struct inotify_event *event;
// inotify_init 함수를 사용하여 inotify 파일 디스크립터를 얻습니다.
fd = inotify_init();
// inotify_add_watch 함수를 사용하여 감시할 파일이나 디렉토리를 지정합니다.
inotify_add_watch(fd, "/path/to/monitor", IN_CREATE | IN_DELETE | IN_MODIFY);
while (1) {
// inotify_read 함수를 사용하여 이벤트를 읽어들이고, 읽어들인 이벤트의 수를 반환합니다.
len = read(fd, buffer, sizeof(buffer));
// 읽어들인 이벤트를 분석하여 이벤트 유형을 확인합니다.
event = (struct inotify_event *)buffer;
// 이벤트 유형에 따라 적절한 처리 로직을 수행합니다.
if (event->mask & IN_CREATE) {
printf("파일이 생성되었습니다.n");
} else if (event->mask & IN_DELETE) {
printf("파일이 삭제되었습니다.n");
} else if (event->mask & IN_MODIFY) {
printf("파일이 수정되었습니다.n");
}
}
}
위 코드는 inotify_read 함수를 사용하여 파일 시스템 이벤트를 읽어들이고, 읽어들인 이벤트를 분석하여 적절한 처리 로직을 수행합니다.
2025-08-01 21:50