CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ 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!
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.