switch문이 제대로 작동이 안하는 이유는 뭔지?
글쓴이: 익명 사용자 / 작성시간: 일, 2002/07/21 - 11:08오후
access 시스템콜 결과를 print해주는 간단한 소스인데요.
전역변수 errno값에 관계없이 항상 default로 빠지는데 switch문 중
문법적으로 잘못된곳이 있는지 요. 제눈엔 안보입니다.
switch ( errno )
{
case EACCES printf (" errno is EACCES\n" );
break;
case ENOENT printf (" errno is ENOENT\n" );
break;
default printf (" errno is default\n" );
break;
}
Forums:
Re: switch문이 제대로 작동이 안하는 이유는 뭔지?
훔...
일단 switch 문 들어가기 전과 후에 errno 값을 찍어보시져..
뭐 여러가지 의심가는 부분이 있긴 한데
extern int errno; 로 *선언*을 안하시거나
를 include 안하시거나 (둘중 하나만 하면됨)
또는 멀티스레드 환경에서 reentrant 한 errno 를 안 쓰셨거나,
정말로 errno가 EACCESS 나 ENOENT가 아닌 다른 값일 수
있을 것 같은데여.
errno값 찍어보신 후에는 errno에 EACCESS나 ENOENT를 강제로
할당하셔서 수행해 보세여.
switch 문 자체로는 별 이상없어 보이네여..
seeker wrote..
access 시스템콜 결과를 print해주는 간단한 소스인데요.
전역변수 errno값에 관계없이 항상 default로 빠지는데 switch문 중
문법적으로 잘못된곳이 있는지 요. 제눈엔 안보입니다.
switch ( errno )
{
case EACCES printf (" errno is EACCES\n" );
break;
case ENOENT printf (" errno is ENOENT\n" );
break;
default printf (" errno is default\n" );
break;
}
댓글 달기