file descriptor
-
프로세스가 fork 되면IT/Linux C 2012. 1. 22.
프로세스 fork가 일어나게 되면, 프로세스가 가지고 있는 명령어 셋과 fd(file descriptor)들은 그대로 함께 복제 되어 진다.\ 또한, 부모 프로세스가 가지고 있던 memory lock, mutex, timer등은 복제되지 않는다. 이러한 이야기를 하게 되는 이유는 최근 서버 클라이언트의 통신 구조에서 클라이언트가 재 시작되는데, 서버에서는 해당 클라이언트가 연결 종료됨을 인지 못하는 문제점에 만난적이 있다. 문제의 원인을 파악하기 위하여 검증을 해보다가 어느 순간에만 연결 종료를 인지하지 못하게 되었다. 클라이언트 프로그램에서 exec 함수를 호출할 때(exec함수는 내부적으로 fork를 합니다) 해당 문제점이 발생하였다. 문제의 원인으로 fork를 통해서 socket을 가리키는 파일 디..