Computer Science/컴퓨터 구조
[CSAPP] 8.3 System Call Error Handling (시스템 콜 에러 처리)
tgool
2023. 3. 1. 19:17
8.3 System Call Error Handling (시스템 콜 에러 처리)
Unix system-level 함수들은 에러를 마주칠 때 다음과 같은 동작을 수행한다.
- -1을 리턴한다.
- 전역 정수형 변수인 errno를 설정한다.
아래의 코드를 살펴보자.
- 이와 같이 -1을 check하고 strerror함수를 통해 errno 변수도 체크하고 있다.
- 하지만 이러한 error-handling 방식은 가독성 때문에 보통 포기하고 있다.
- 이 장에서는 가독성도 챙기면서 에러 핸들링을 하는 방식을 간략하게 살펴볼 것.
- Fork 함수
- wrapper 함수이다. (앞의 글자만 대문자로 하고 있음)
- 여기서 원 함수 fork를 호출, 그리고 error 핸들링, 그리고 fork의 반환값을 반환하는 과정을 수행한다.
- 또한 문제가 발생 시 종료하는 절차까지 있다.