부모 자식 프로세스간 시그널 주고받기와 공유메모리사용

익명 사용자의 이미지

유닉스 공부중인 학생입니다...
현재 fork와 signal에 관해서 공부중인데 실습문제중에 서버와 클라이언트로 각각 코딩하여 공유 메모리를 사용하는 예제가 있어서 그걸 한 코드로 합쳐서 그안에서 부모가 서버, 자식이 클라이언트의 역할을 수행하게 하고싶습니다.
그런데 이경우에 각각 부모는 자식에게 공유메모리할당이 되었다고 작성하려하고 자식은 부모에게 공유메모리 사용이 다끝났을때 시그널을 보내려하는데 시그널값을 어떤식으로 분리를 해야할까요?

jick의 이미지

질문만 봐서는 "시그널 값을 분리"한다는 게 도대체 무슨 의미인지 잘 모르겠지만, 만약 클라이언트가 여러 개인데 누가 시그널을 보냈는지 어떻게 알 수 있느냐라는 질문이라면,

시그널 대신 pipe를 쓰는 걸 추천드립니다. 그리고 서버가 pipe에서 read나 select를 하면서 기다리고 있으면 되고, pipe는 원하는 데이터를 보낼 수 있기 때문에 클라이언트가 "나 누구"라는 정보를 write하면 됩니다.