검색어 입력폼

[UNIX]스몰쉘(smallsh)의 구현

저작시기 2006.11 |등록일 2006.12.09 파일확장자압축파일 (zip) | 8페이지 | 가격 1,000원

소개글

smallsh 프로그램 파일 + 보고서로 구성.
smallsh라는 간단한 명령 처리기(command processor)를 구축한다. 쉘은 사용자가 로그인 했을 때 우연히 호출되는 평범한 프로그램에 불과하다는 것을 보여준다. smallsh가 해야 할 일은 간단하다. 이 프로그램은 명령들을 조합하여, 그것들을 백그라운드(background) 혹은 포그라운드(foreground)로 수행시킨다. 또한 몇 개의 명령들이 세미콜론(;)으로 연결된 줄들도 처리할 수 있어야 한다.

목차

없음

본문내용

smallsh라는 간단한 명령 처리기(command processor)를 구축한다. 쉘은 사용자가 로그인 했을 때 우연히 호출되는 평범한 프로그램에 불과하다는 것을 보여준다. smallsh가 해야 할 일은 간단하다. 이 프로그램은 명령들을 조합하여, 그것들을 백그라운드(background) 혹은 포그라운드(foreground)로 수행시킨다. 또한 몇 개의 명령들이 세미콜론(;)으로 연결된 줄들도 처리할 수 있어야 한다.
기본적인 논리는 다음과 같이 간단하다.

while(EOF가 타입되지 않음)
{
사용자로부터 명령줄을 받아들인다.
명령인수를 조립하여 수행한다.
자식을 기다린다(wait).
}

명령줄을 받아들이는 함수에 userin이라는 이름을 부여한다. userin은 프롬프트(prompt)를 인쇄하고, 키보드에서 한줄의 입력이 들어오기를 기다린다. 받은 입력은 무엇이건 프로그램 버퍼에 저장한다. userin을 다음과 같이 구현하였다.

/* 예를 위한 include 파일 */
#include "smallsh.h"

/* 프로그램 버퍼 및 작업용 포인터들 */
static char inpbuf[MAXBUF], tokbuf[2*MAXBUF], *ptr=inpbuf, *tok=tokbuf;

/* 프롬프트를 프린트하고 한 줄을 읽는다. */
int userin (char *p)
{
int c, count;

/* 뒤의 루틴들을 위한 초기화 */
ptr = inpbuf;
tok = tokbuf;
다운로드 맨위로