8.3 System Call Error Handling (시스템 콜 에러 처리)
Unix system-level 함수들은 에러를 마주칠 때 다음과 같은 동작을 수행한다.
- -1을 리턴한다.
- 전역 정수형 변수인 errno를 설정한다.
아래의 코드를 살펴보자.

- 이와 같이 -1을 check하고 strerror함수를 통해 errno 변수도 체크하고 있다.
- 하지만 이러한 error-handling 방식은 가독성 때문에 보통 포기하고 있다.
- 이 장에서는 가독성도 챙기면서 에러 핸들링을 하는 방식을 간략하게 살펴볼 것.
- Fork 함수
- wrapper 함수이다. (앞의 글자만 대문자로 하고 있음)
- 여기서 원 함수 fork를 호출, 그리고 error 핸들링, 그리고 fork의 반환값을 반환하는 과정을 수행한다.
- 또한 문제가 발생 시 종료하는 절차까지 있다.
'Computer Science > 컴퓨터 구조' 카테고리의 다른 글
[CSAPP] 9.7 Case Study: The Intel Core i7 / Linux Memory System (0) | 2023.03.01 |
---|---|
[CSAPP] 9.8 Memory Mapping (메모리 맵핑) (0) | 2023.03.01 |
[CSAPP] 8.2 Processes (프로세스) (0) | 2023.03.01 |
[CSAPP] 9.3 VM as a Tool for Caching(캐싱 도구로서의 VM) (0) | 2023.03.01 |
[CSAPP] 9.2 Address Spaces(주소 공간) (0) | 2023.03.01 |