문제

나는 Rhel 4를 사용하고 있습니다

다음과 같이 syscall stat를 사용하고 있습니다.-

if (stat ("file",&stat_obj)){

     if (errno == ENOENT){
        printf("File not found");
     }else{
        printf("Unexpected error occured %d ",errno);
     }
}

때때로 ""예기치 않은 오류가 0 "으로 오류 메시지가 발생합니다.

즉, "0"으로 오류가 발생합니다. 괜찮은 파일 권한을 확인했습니다

그게 무슨 뜻입니까? 왜 이런 일이 일어나고 있는지 이해할 수 없습니까?

제안이 있습니까?

도움이 되었습니까?

해결책

이렇게 부르는 경우 의미있는 오류 메시지를 제공합니까?

   if (stat("file", &stat_obj) == -1) {
       perror("stat");
   }

다른 팁

프로그램에 신호 처리기가 있습니까? 그렇다면 영향을 줄 수 있습니다 errno, 그런 다음 저장하는지 확인하십시오 errno 진입시에 반환하기 전에 원래 가치로 복원합니다.

또한 당신을 확인하십시오 #include <errno.h>, 그리고 선언하지 않습니다 errno 특히 귀하의 프로그램이 멀티 스레드 인 경우 자신의 것입니다. errno 스레드 당 변수이므로 글로벌로 선언하면 잘못된 것을 얻을 수 있습니다. (일부 플랫폼에서는 때때로 같은 특수 편집 플래그가 필요합니다. -D_TS_ERRNO 스레드 안전 errno의 경우 Linux에서는 그러한 플래그가 필요하지 않습니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top