파일 설명자를 사용하여 일반 파일의 이벤트를 모니터해야합니다. CentOS 4.1 및 커널 버전 2.6.18.128이있는 컴퓨터에서 작업하고 있습니다.이전 glibc를 사용하여 Linux에서 파일 변경 모니터링
epoll
을 사용하여 일반 파일을 모니터링 할 수 없다는 것을 알고 나면 inotify
을 사용하여이 작업을 수행 할 수 있습니다. 그러나 다른 곳에서는 inotify
의 필수 라이브러리 인터페이스가 버전 2.4의 glibc에 추가되었고 내 컴퓨터는 버전 2.3.4가 설치되어 있습니다. 그래서 커널은 glibc가 아닌 inotify를 지원합니다. 아쉽게도 은으로 glibc를 새로운 버전으로 업데이트 할 수 없습니다. 프로젝트의 특정 부분이 손상 될 수 있기 때문입니다.
그래서 제 질문은 다음과 같습니다
- 나는 아직도 일반 파일을 모니터링 할
inotify
를 사용할 수 있습니까? 새로운 버전의 glibc를 로컬 폴더 (코드와 관련이 있음)에 놓고 내 Makefile에 경로를 넣고inotify
과 관련된 호출을 사용할 수 있습니까? 그렇다면 어떤 종류의 문제가 발생할 수 있습니까? - 대체물은
struct stat
구조체의st_mtime
구성원을 추적하여fstat
을 사용할 수 있습니다. 이 경로를 취하는 것에 대한주의 사항은 무엇입니까?
제 질문에 이러한 개념에 대한 이해가 부족한 것으로 드러났을 경우 방금 사용하기 시작 했으므로 알려주십시오.
링크를 제공해 주셔서 감사합니다. 하나의 설명은 내가 아직도 어떤 점을 혼란스럽게합니다. 내가 기여하고있는 프로젝트의 다른 부분은 이전 버전의 glibc를 사용할 것입니다. 새로운 버전이 필요한 유일한 곳입니다. 단일 프로젝트를 만들기 위해 두 가지 버전의 glib를 사용할 수 있습니까? 이 문제가 발생하지 않습니까? – SidR
이전 glibc가 필요한 특정 기능이 있습니까? 2 개의 서로 다른 라이브러리 버전에 링크 할 수 없으므로 컴파일러에 대한 불확실한 조건이됩니다. –
그냥 두 개의 서로 다른 링크 된 응용 프로그램을 가질 수 있고 GLIBC 버전의 ifdef MACRO를 통해 호출을 제어 할 수 있습니다. –