• 통큰쿠폰이벤트-통합

[학기레포트]MiniShell구현

푸우
개인인증판매자스토어
최초 등록일
2008.01.30
최종 저작일
2007.05
10페이지/ 압축파일
가격 3,900원 할인쿠폰받기
다운로드
장바구니

소개글

학기레포트로 나온 minishell의 구현입니다.

unix상에서 구현한 프로그램입니다.

좋은 점수받었으므로 레포트하실때 도움이

되실거라 생각합니다.

유용하게 사용하셨으면 좋겠네요..^^

컴파일 실행환경

없음

본문내용

실습 목표
운영체제 2장을 참고하여, 기본적인 Minishell을 작성하여 실습하고,
2장에서 만든 기본적인 Minishell을 9장을 참고하여, 확장하여, 추가적인 기능을
구현하여 실습한다.
‧추가 기능 : PIPE, REDIRECTION, BACKGROUND
프로세스와 관련된 5가지 명령어를 사용하여, 프로그램을 구현한다.
⑴ fork() ⑵ execvp() ⑶ wait() ⑷ pipe() ⑸ dup()

Minishell의 실행과정
1. 명령어 실행

① 사용자가 명령어를 치면, 명령어를 버퍼나 문자열을 통해서 라인으로 읽는다.
② 명령어 줄을 읽어서 명령어와 명령어인자로 파싱한다.
③ 명령어가 있는 경로를 환경변수를 통해서 찾고, 만약 명령어가 없다면 에러 메시지를 출력한다.
④ 자식을 생성하여, 명령어를 실행시키고 부모프로세스는 자식이 종료될 때까지 기다린다.

.......

<소스코드>
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
#include <sys/wait.h>

#define EOL 1 /* end of line */
#define ARG 2 /* normal arguments */
#define AMPERSAND 3
#define SEMICOLON 4
#define INREDIRECT 5
#define OUTREDIRECT 6
#define PIPE 7

#define MAXARG 512 /* max. no. command args */
#define MAXBUF 512 /* max. length input line */
#define MAXPIPES 5

#define FOREGROUND 0
#define BACKGROUND 1

void closeALLPipes(int [][2], int);
void executePipes(int, char **);
int refile(int , char *);
int runcommand(int, char **, int *, int, int);
int procine(void);
int inarg(char);
int gettok(char **);
int userin();

static char inpbuf[MAXBUF], tokbuf[2*MAXBUF],
*ptr = inpbuf, *tok = tokbuf;

static char special[] = {` `, `t`, `&`, `;`, `<`, `>`, `|`, `n`, ``};

main()
{
/* Start Shell */
printf("--------------------------------------------n");
printf("- 20313034 DONGHYEONG-LEE`s Shell -n");
printf("- Are You Quit? Enter (quit). -n");
printf("--------------------------------------------n");
while(userin() != EOF) //명령어를 입력받는 함수.
procline(); //입력받은 명령을 분석한다.
}
int userin()
{
int c, count; //count는 명령어의 글자 수.
char *buf;
buf=getcwd(NULL,40);
//현재 폴더를 보여줌
/* initialization for later routines */
//입력버퍼 첫 배열의 주소를 포인터 변수 ptr에 저장.
ptr = inpbuf;
//토큰버퍼 첫 배열의 주소를 포인터 변수 tok에 저장.
tok = tokbuf;
printf("[%s]", buf); //명령 프롬프트를 출력한다.

count = 0; //count 초기화.

while(1) //명령어가 끝날때 까지 루프를 돈다.
{
if((c = getchar()) == EOF)

압축파일 내 파일목록

Minishell.hwp
minishell 프로그램의 수행 단계.txt
minishell.c
minishell.c.txt
minishell.h
minishell.h.txt

참고 자료

Operating Systems,Nutt, Third Edition.

자료후기(1)

푸우
판매자 유형Bronze개인인증

주의사항

저작권 자료의 정보 및 내용의 진실성에 대하여 해피캠퍼스는 보증하지 않으며, 해당 정보 및 게시물 저작권과 기타 법적 책임은 자료 등록자에게 있습니다.
자료 및 게시물 내용의 불법적 이용, 무단 전재∙배포는 금지되어 있습니다.
저작권침해, 명예훼손 등 분쟁 요소 발견 시 고객센터의 저작권침해 신고센터를 이용해 주시기 바랍니다.
환불정책

해피캠퍼스는 구매자와 판매자 모두가 만족하는 서비스가 되도록 노력하고 있으며, 아래의 4가지 자료환불 조건을 꼭 확인해주시기 바랍니다.

파일오류 중복자료 저작권 없음 설명과 실제 내용 불일치
파일의 다운로드가 제대로 되지 않거나 파일형식에 맞는 프로그램으로 정상 작동하지 않는 경우 다른 자료와 70% 이상 내용이 일치하는 경우 (중복임을 확인할 수 있는 근거 필요함) 인터넷의 다른 사이트, 연구기관, 학교, 서적 등의 자료를 도용한 경우 자료의 설명과 실제 자료의 내용이 일치하지 않는 경우
최근 본 자료더보기
유니스터디 이벤트
[학기레포트]MiniShell구현
  • 유니스터디 이벤트
AI 챗봇
2024년 09월 29일 일요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
11:25 오후
문서 초안을 생성해주는 EasyAI
안녕하세요. 해피캠퍼스의 방대한 자료 중에서 선별하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 목차부터 본문내용까지 자동 생성해 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감