Socket()함수에서 리턴값
글쓴이: ryuts / 작성시간: 금, 2009/01/09 - 2:56오후
unix내에서 네트워크 프로그래밍을 구현할때
Socket이라는 함수가 리턴하는 파일디스크립터 식별자의
최대 생성 갯수가 몇개까지 될까요?
추가로, 만약 최대 생성갯수가 10이라면 socket()함수가 10을 리턴하면, 소켓 생성이 불가능하지만,
만약 1~9의 fd을 다 해제 했는데도(close함수를 써서) 불구하고 10을 리턴했다면 1~9는 아직
close가 안되었다고 봐야 하나요? 적어도 9는 아직 close가 안되었다고 생각하는게 맞는걸까요?
Forums:
한개와 1은 의미가
한개와 1은 의미가 다릅니다.
1번과 한번이 의미가 다르듯.
errno 에 ENFILE, EMFILE 이 정의되어 있습니다.
man socket 에 나온 것 정도는 믿으세요.
그리고,
아뇨. 그럴 수도 있고 아닐 수도 있으니 그런 식으로 생각하지 마세요.
OTL
답변감사드립니다.
^-^ 답변 감사드립니다.
그런데 ... 답변 주신 아래 말이 이해가 잘 안되네요 ^^;;;
한개와 1은 의미가 다릅니다.
1번과 한번이 의미가 다르듯.
fd(파일디스크립터)가 close로 닫히던 안닫히던 socket의 리턴값만을 보고 1024개와 비교해 작으면 생성 넘으면 fd를 생성
안하는건가요?
"-1이 아닌 임의의
"-1이 아닌 임의의 정수" 가 "OPEN_MAX 개" 만큼 선택될 수 있다는 있다는 뜻입니다.
OPEN_MAX 에 도달했을 때는
반환값이 -1 이고, errno 가 EMFILE 혹은 ENFILE 이 되겠죠.
OTL
아~ 그렇군요. 제가 잘못생각하는 부분이 있었네요.
감사합니다.
댓글 달기