[문제와 풀이] 리눅스(Linux)에서의 쉘(Shell) 구현 프로그래밍
- 최초 등록일
- 2020.11.12
- 최종 저작일
- 2020.09
- 5페이지/
어도비 PDF
- 가격 1,500원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
* 본 문서는 PDF문서형식으로 복사 및 편집이 불가합니다.
소개글
리눅스에서 사용하는 Shell의 구현 방법과 코드가 자세히 서술된 레포트입니다. 퀄리티 보장합니다.
참고로, 서울 상위권 대학 컴공 수업에서 A+받은 과제물입니다.
목차
1. 문제 정의
2. 알고리즘
1) main의 while문 안에서
2) Parse함수
3. S/W Diagram (소프트웨어 다이어그램)
4. 소스 코드
5. 결론
1) 실행 결과
2) 결과 분석
본문내용
1. 문제 정의
linux에서 사용하는 shell의 foreground와 background 기능을 구현한다.
foreground의 경우 요청한 작업이 모두 끝날 때까지 기다린 뒤, 해당 작업이 끝나면 프롬프트를 찍어서 다음 명령문을 받는다. 반면에 background는 명령문 뒤에 & 기호를 붙인 명령문으로, 해당 작업이 끝날 때까지 기다리지 않고 해당 작업이 진행되는 동시에 바로 프롬프트를 찍어 다음 명령문을 받는다. 즉, 요청한 작업과 shell을 동시에 별개로 작동시킨다.
Parse함수는 입력 받은 명령어가 foreground인지, background인지, 아니면 잘못된 명령어인지를 판별하고, 올바른 명령어일 경우 명령어를 exec할 이름으로 바꿔주는 역할을 한다.
2. 알고리즘
1) main의 while문 안에서
(1) commmand와 exec_name이라는 동적할당메모리를 선언
“$”를 출력해 프롬프트를 찍고, command 배열에 명령어를 입력 받음
(2) 입력 받은 명령어를 Parse 함수에 넣음
(3) foreground일 경우(n==0), fork() 시스템 콜하여 새로운 process를 만들기
child process는 execl()를 시스템 콜하여 새로운 program을 로드 parent process일 땐 child process가 죽을 때까지 기다림
참고 자료
없음