파이프와의 차이점은, 표준입력과 표준출력을 넘겨주는(변경하는) 대상이 프로세스가 아니라 파일(file)이라는 것 뿐이다.
"한 가지 일만 아주 잘하는 프로그램들을 작성하라. 프로그램들이 다른 프로그램들과 함께 일할 수 있도록 작성하라. 프로그램들이 텍스트 스트림을 처리할 수 있도록 작성하라. 왜냐하면 그것은 보편적인 인터페이스이기 때문이다." - Doug McIlroy
모든 명령어는 종료 상태(exit status) 리턴한다. 명령어 성공시에는 0을 리턴하고 실패시에는 에러 코드로 해석될 수 있는 1~255를 리턴한다. 즉 유닉스 관례를 잘 따르는 프로그램이라면, 함수의 가장 마지막에 실행된 명령어가 종료 상태를 결정한다.
시그널을 받은 프로세스는 다음 3가지 반응 중 하나의 액션을 취한다. 1. 프로세스 종료 / 2. 시그널 무시 / 3. 사용자가 지정한 함수(핸들러) 호출
완성하기까지 총 7주. 예외처리를 하다보면 코드가 지저분해지고, 또 원래는 잘 동작했던 것들이 무용지물이 되는 경우가 많았습니다. 지쳐갈 때 쯤 힘이 되어 주었던 건 많은 42 동료의 도움덕이었고, 그래서 저도 메모했던 내용들을 자세하게 정리해서 공유하고 싶었습니다.
미니쉘 과제를 시작하기 전 알고있으면 좋을 Shell의 구성요소, Shell에서 프로세스를 시작하는 방법, 허용함수 동작방식을 정리했습니다.