늦은 코드리뷰
libs/functions.c
void arkShowUsage() 함수에서 프로그램 종료시키지 않기.
usage를 보여주는 함수에서 프로그램 종료를 시킨다? 주 흐름과 벗어난 동작!
control.c에서 argument 체크 실패 패턴은 아래와 같이 구성되어야 하는데,
지금 서준이가 한거는 usage 출력 하면서 프로그램도 종료함
시작과 끝이 같은 레벨이 될 수 있도록 구성할 것!
프로그램 시작
argument 체크 실패
usage 출력
argument 체크 실패에 따른 처리 끝
프로그램 종료
server
scanf 보다는
scanf("%s"); //for wait
이런 패턴?
stop_flag = 0;
main {
...
signal(SIGINT, StopSignalHandler);
while (stop_flag == 0) {
sleep(1);
}
ServerStop();
return 0;
}
void StopSignalHandler() {
stop_flag = 1;
}
void ServerStop() {
// 시그널 보내기
}
왜냐, server를 종료시키는 액션이 너무 다양해짐.
scanf("%s"); 이 함수는 엔터가 들어올때까지 입력을 받게되어서 사용자의 정해지지 않은 액션에 의해 종료되는 형태가 됨
패턴을 변경하면, 사용자의 입력을 받기위해 wait을 하면서 control 프로세스를 계속 띄워놓지 않아도 됨
control은 자기할일만 딱 하고 종료하기! server와 의존관계가 되면 안된다.
client
fork를 많이 써본건 좋은데,
여기도 마찬가지로 scanf로 프로세스 흐름 제어하는게 위험요소!
client는 fork를 지양하고, 하나의 main 흐름으로 프로세스를 제어해보자..!