리눅스 반환 오류의 STAT SysteCall
-
21-08-2019 - |
문제
나는 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에서는 그러한 플래그가 필요하지 않습니다.)
제휴하지 않습니다 StackOverflow