socket open -> bind -> listen 후 fork() 했을때...
글쓴이: neohwang / 작성시간: 월, 2003/10/06 - 6:18오후
아이구.. 이런 질문 드려서 죄송합니다.
테스트 해 보면 되는데...
제목대로..
int s; <- 전역변수 선언 s=socket() bind() listen()
한 후에
fork()를 한 후 부모 프로세스는 종료시킬려고 하는데요.
이 때, 부모 프로세스에서 close(s)를 해야 되죠?
그럼.. 자식 프로세스에서는 socket s 를 계속 사용할 수 있나요?
그리고. 그 자식프로세스가 종료될 때 close(s) 를 또 해 줘야 되나요?
만약 s 를 전역변수로 선언했어도. 마찬가지 인가요?
초보
fork() 및 socket 과 관련된 개념이 부족하여 질문 올립니다.
바쁘신 중에, 자세한 개념 설명 부탁드립니다.
Forums:
Re: socket open -> bind -> listen 후 fork() 했을때...
부모 프로세스를 종료할 때 s가 열려 있다면 알아서 닫아줍니다. 즉, 어차피 부모 프로세스를 종료할 것이라면 종료하기 전에 닫던, 그냥 종료하던 둘다 닫히는 것입니다.
네.
앞의 경우와 같이 프로세스가 종료될때 알아서 닫아줍니다. 프로그래머가 직접 닫느냐, OS가 알아서 닫느냐의 차이겠죠.
네. 변수의 위치와는 상관이 없습니다. 열린 파일에 관한 정보는 OS 차원에서 관리하는 것이기 때문에.
자세한 개념은 APUE (Advanced Programming in Unix Environment)책을 참고하세요 :)
댓글 달기