
인피니티 리디(inotify_read) 함수를 사용하기 위해서는 먼저 inotify를 초기화해야 합니다. inotify를 초기화하는 방법은 다음과 같습니다.
1. inotify_init() 함수를 호출하여 inotify 파일 디스크립터를 생성합니다. 이 파일 디스크립터는 inotify를 초기화하고 이벤트를 감지하기 위한 필수적인 요소입니다.
2. inotify_add_watch() 함수를 호출하여 감시할 파일이나 디렉토리를 지정합니다. 이 함수는 파일 디스크립터와 파일 경로를 인자로 받으며, 감시할 파일이나 디렉토리를 지정합니다.
3. inotify_read() 함수를 호출하여 이벤트를 읽습니다. 이 함수는 파일 디스크립터와 버퍼를 인자로 받으며, 이벤트를 읽고 버퍼에 저장합니다.
인피니티 리디(inotify_read) 함수의 반환 값은 다음과 같이 처리할 수 있습니다.
- 반환 값이 0인 경우, 이벤트가 더이상 발생하지 않았을 때는 inotify_rm_watch() 함수를 호출하여 감시를 해제하고, inotify_close() 함수를 호출하여 inotify 파일 디스크립터를 닫습니다.
- 반환 값이 음수인 경우, 오류가 발생했을 때는 오류 코드를 확인하고, 필요한 경우 오류를 처리합니다.
인피니티 리디(inotify_read) 함수의 사용법은 다음과 같습니다.
#hostingforum.kr
c
#include
#include
#include
int main() {
int inotify_fd = inotify_init();
if (inotify_fd == -1) {
perror("inotify_init");
exit(1);
}
int wd = inotify_add_watch(inotify_fd, "/path/to/file", IN_CREATE | IN_DELETE | IN_MODIFY);
if (wd == -1) {
perror("inotify_add_watch");
exit(1);
}
char buffer[1024];
ssize_t len = inotify_read(inotify_fd, buffer, sizeof(buffer));
if (len == -1) {
perror("inotify_read");
exit(1);
}
if (len == 0) {
inotify_rm_watch(inotify_fd, wd);
inotify_close(inotify_fd);
exit(0);
}
// 이벤트 처리 코드
printf("Event: %sn", buffer);
return 0;
}
위 코드는 inotify를 초기화하고, 감시할 파일을 지정한 후, 이벤트를 읽고 처리합니다. 반환 값이 0인 경우, 이벤트가 더이상 발생하지 않았을 때는 감시를 해제하고, inotify 파일 디스크립터를 닫습니다. 반환 값이 음수인 경우, 오류가 발생했을 때는 오류 코드를 확인하고, 필요한 경우 오류를 처리합니다.
2025-03-06 05:07