<aside> 💡 이 프로젝트의 목적은, UNIX signal들을 이용하여 소규모 데이터 교환 프로그램을 작성하는 데 있습니다.
</aside>
실행가능한 파일들의 이름은 client와 server가 되어야합니다.
1개의 전역 변수를 사용할 수 있지만, 그 사용을 정당화할만한 이유가 있어야합니다.
기본 파트에서는 다음과 같은 함수들을 사용할 수 있도록 합니다.
그 외의 부분 (뮬리넷, 메이크파일 규정, 보너스파트 파일명, libft 사용가능, 메모리 할당 시 free()와 메모리 릭, 예상치못한 프로그램 오류(segfault 등) 금지, 보너스 채점에 대한 규정)들은 이전 프로젝트들과 같다.
클라이언트와 서버라는 형태로 통신 프로그램을 만들어야합니다.
서버가 먼저 실행되어야하며, 실행된 이후에는 PID를 표시해야합니다.
클라이언트가 실행될 떄 다음의 매개변수를 받습니다 :
클라이언트는 매개변수로 받은 문자열을 서버로 전달해야합니다. 그리고 서버는 문자열이 수신되었을 때 그 문자열을 표시해야합니다.
프로그램 간의 통신은 오직 UNIX signal들만을 이용하여 이루어져야합니다.
서버는 꽤나 빠르게 문자열을 표시해야합니다. '빠르게' 라고 말한 이유는, 만약 당신이 그게 너무 오래 걸린다고 생각한다면, 그건 아마도 진짜로 오래 걸리는 것일 것이기 때문입니다.
(힌트 : 100 글자 보내는데 1초가 걸린다면 어마어마하게 긴 것)
서버를 재시작할 필요없이 여러 클라이언트로부터 문자열들을 연속으로 수신할 수 있어야합니다.
SIGUSR1과 SIGUSR2라는 2개의 signal만 사용할 수 있습니다.
a - 97 - 1011 1011 h
<aside> 💡 당신이 이미 이러한 유형의 미결정된 시그널들을 가지고 있을 때, 리눅스 시스템은 시그널들을 queue 하지 않습니다! 보너스 한번 해볼래요?
</aside>