[ CnUnix ] in KIDS 글 쓴 이(By): ymir (Mizz) 날 짜 (Date): 2006년 12월 10일 일요일 오후 06시 56분 59초 제 목(Title): [Q] fcntl 관련... Solaris 9 sparc 머신에 로그인이 안 되는 문제가 있어서... login 을 truss 로 떠 봤는데.. 좀 이상한 부분이 있어서 여쭤 봅니다. .. open("/etc/security/pam_acl_conf/user/root", O_RDONLY) = 4 fstat64(4, 0xFFBFF670) = 0 fstat64(4, 0xFFBFF518) = 0 ioctl(4, TCGETA, 0xFFBFF5FC) Err#25 ENOTTY read(4, " r o o t : + : t e l n e".., 8192) = 304 open("/etc/netconfig", O_RDONLY|O_LARGEFILE) = 5 fcntl(5, F_DUPFD, 0x00000100) = 256 close(5) = 0 read(256, " # p r a g m a i d e n".., 1024) = 1024 read(256, " t s t p i _ c".., 1024) = 215 read(256, 0x00032168, 1024) = 0 lseek(256, 0, SEEK_SET) = 0 read(256, " # p r a g m a i d e n".., 1024) = 1024 read(256, " t s t p i _ c".., 1024) = 215 read(256, 0x00032168, 1024) = 0 close(256) = 0 open("/dev/udp", O_RDONLY) = 5 ioctl(5, 0xC00C6982, 0xFFBFF454) = 0 close(5) = 0 door_info(3, 0xFFBFD3D8) = 0 door_call(3, 0xFFBFD3C0) = 0 time() = 1165494646 llseek(4, 0xFFFFFFFFFFFFFF05, SEEK_CUR) = 53 close(4) = 0 open("/etc/nsswitch.conf", O_RDONLY|O_LARGEFILE) = 4 fcntl(4, F_DUPFD, 0x00000100) = 256 close(4) = 0 read(256, " #\n # / e t c / n s s".., 1024) = 783 read(256, 0x00032158, 1024) = 0 close(256) = 0 .. 위에 보면 fcntl 이 -1 (errno is EINVAL) 이 아닌 256 을 리턴했던데.. fcntl 이 F_DUPFD 이고 arg 가 OPEN_MAX 보다 크거나 같을 경우에는.. -1 을 리턴해야 될 것 같은데, 저런 경우도 있는건지...? 만약 저런 경우가 있을 수 있다면 어떤 상황에서 256 을 리턴하는지 궁금합니다. 헤더에는 OPEN_MAX 가 아래와 같이 정의되어 있습니다. /usr/include/limits.h:#define OPEN_MAX 256 참고로 시스템에 cron 데몬인지 cron 에서 띄운 서비스인지는 모르겠는데.. 그런 프로세스가 수백개 떠 있었다고 합니다. (뭔가 시스템에 이상이 생긴것 같긴한데, 리붓하고 나서는 멀쩡하다눈.. ;;;) 미리 감사드립니다. Oh, I do believe everlasting love and destiny to meet you again I feel a pain I can hardly stand all I can do is loving you - *Mizz* the Magic Knight! |