2013-03-04 8 views
0

파일 설명자를 사용하여 일반 파일의 이벤트를 모니터해야합니다. CentOS 4.1 및 커널 버전 2.6.18.128이있는 컴퓨터에서 작업하고 있습니다.이전 glibc를 사용하여 Linux에서 파일 변경 모니터링

epoll을 사용하여 일반 파일을 모니터링 할 수 없다는 것을 알고 나면 inotify을 사용하여이 작업을 수행 할 수 있습니다. 그러나 다른 곳에서는 inotify의 필수 라이브러리 인터페이스가 버전 2.4의 glibc에 추가되었고 내 컴퓨터는 버전 2.3.4가 설치되어 있습니다. 그래서 커널은 glibc가 아닌 inotify를 지원합니다. 아쉽게도 으로 glibc를 새로운 버전으로 업데이트 할 수 없습니다. 프로젝트의 특정 부분이 손상 될 수 있기 때문입니다.

그래서 제 질문은 다음과 같습니다

  1. 나는 아직도 일반 파일을 모니터링 할 inotify를 사용할 수 있습니까? 새로운 버전의 glibc를 로컬 폴더 (코드와 관련이 있음)에 놓고 내 Makefile에 경로를 넣고 inotify과 관련된 호출을 사용할 수 있습니까? 그렇다면 어떤 종류의 문제가 발생할 수 있습니까?
  2. 대체물은 struct stat 구조체의 st_mtime 구성원을 추적하여 fstat을 사용할 수 있습니다. 이 경로를 취하는 것에 대한주의 사항은 무엇입니까?

제 질문에 이러한 개념에 대한 이해가 부족한 것으로 드러났을 경우 방금 사용하기 시작 했으므로 알려주십시오.

답변

1

2의 glibc은 다음 게시물을 참조 : 는 Multiple glibc libraries on a single host

그렇지 않으면 inotify를 해결 정직 보인다.

+0

링크를 제공해 주셔서 감사합니다. 하나의 설명은 내가 아직도 어떤 점을 혼란스럽게합니다. 내가 기여하고있는 프로젝트의 다른 부분은 이전 버전의 glibc를 사용할 것입니다. 새로운 버전이 필요한 유일한 곳입니다. 단일 프로젝트를 만들기 위해 두 가지 버전의 glib를 사용할 수 있습니까? 이 문제가 발생하지 않습니까? – SidR

+0

이전 glibc가 필요한 특정 기능이 있습니까? 2 개의 서로 다른 라이브러리 버전에 링크 할 수 없으므로 컴파일러에 대한 불확실한 조건이됩니다. –

+0

그냥 두 개의 서로 다른 링크 된 응용 프로그램을 가질 수 있고 GLIBC 버전의 ifdef MACRO를 통해 호출을 제어 할 수 있습니다. –