F_SETOWN에 관하여
글쓴이: asleea / 작성시간: 목, 2013/01/03 - 5:38오후
소켓 프로그래밍 서버코드 중,
fcntl(servSock, F_SETOWN, getpid()) //servSock는 전역변수 선언, 서버포트와 bind되 었다. fcntl(servSock, F_SETFL, O_NONBLOCK | FASYNC);
여러 개의 프로세스들이 동일한 소켓에 접근할 수 있으므로 어느 프로그램이 시그널을 받을지에 대한 모호성 때문에
시그널을 받을 프로세스를 지정해 준다고 하는데요
당연히 서버 프로세스는 시그널을 받을 수 있고, 나머지 여러개의 프로세스들이란 클라이언트 프로세스들을 뜻하는 것 같은데
음 정확히...어떠한 프로세스들이 시그널을 받을 수 있는지 알고 싶습니다.
예를 들어 3개의 클라이언트 프로세스가 있다고 하고 SIGIO가 발생 하였을때
1번 클라이언트는 아직 servSock에 접근 하기 전 상태이고
2번 클라이언트는 servSock에 접근하였습니다.(즉 2번 클라이언트에 의해 SIGIO가 발생)
3번 클라이언트는 이미 servSock에 접근하여 연결 된 이후, accept가 이루어지고 다른 소켓을 통해 통신하고 있습니다.
(즉 현재는 아니지만 전에 접근하였었던 클라이언트)
아니면 다른 프로세스들도 SIGIO를 받을 수 있는지.?
Forums:
댓글 달기