리눅스 환경에서 실행중인 Java 응용 프로그램을 NFS 파일 시스템에 쓰려고합니다.Java에서 ESTALE과 ENOENT를 구별하는 가장 좋은 방법
java.io.File.exists()
을 호출하면 ESTALE
(부적절한 NFS 파일 핸들)과 ENOENT
(해당 파일이나 디렉토리가 없음) 모두에 대해 false가 반환됩니다. 내 응용 프로그램의 경우이 둘을 구별 할 수 있어야합니다.
현재 stat()
호출을 JNA를 사용하여 구현할 것을 고려 중입니다.하지만 과장 될 것으로 보입니다. 전체 stat 구조를 구현해야하는 이유와 플랫폼에 따라 달라지는등이 있습니다.
File.exists()
같은 Java 호출 후에 기본 errno
을 얻는 간단한 방법이나이 문제를 해결하기위한 다른 아이디어가 있습니까?
나는이 제안을 좋아한다. 나는 또한'access (file, F_OK)'를 구현하는 것을 고려했다. 이것은 훨씬 간단하지만'ESTALE'과'ENOENT'를 구별하지 못한다. 그러나 결국 우리는 이러한 차별화를 필요로하지 않는 솔루션을 발견했습니다. –