본문/내용
1. 프로그램 코드 구조
myshell의 프로그램 코드 구조는 크게 몇 가지 주요 구성 요소로 나눌 수 있다. 첫 번째로, 초기화 과정이다. 이 과정에서는 필요한 라이브러리를 포함하고, 기본 환경을 설정한다. 예를 들어, 표준 입력과 출력을 이용하기 위한 설정과 같은 작업이 포함된다. 두 번째로, 메인 루프가 있다. 이 루프는 사용자로부터 입력을 받아 명령어를 해석하고 실행하는 역할을 한다. 여기서 사용자 입력에 대한 오류 처리도 함께 수행된다. 세 번째로, 명령어 처리 함수들이 존재한다. 이 함수들은 입력받은 명령어를 파싱하고, 각 명령어에 맞는 처리를 수행한다. 예를 들어, 외부 명령어의 경우에는 `fork`와 `exec` 시스템 호출을 이용해 자식 프로세스에서 실행하도록 구현한다. 내부 명령어의 경우에는 단순히 현재 쉘 프로세스 내에서 직접 실행된다. 또한, 파이프 및 리다이렉션을 처리하는 로직 또한 포함된다. 이는 복잡한 명령어 조합을 가능하게 하며, 사용자가 쉘을 통해 다양한 작업을 수행할 수 있도록 돕는다. 마지막으로, 메모리 관리와 종료 처리 부분도 중요하다. 쉘이 종료될 때 모든 프로세스가 정상적으로 종료되고, 할당된 메모리가 해…