[minishell] 미니쉘 과제

개발하는 곰댕이·2021년 8월 9일
0

42Seoul

목록 보기
2/45

과제설명

규칙

  • 닫히지 않은 따옴표나 \ 또는 ;와 같은 명시되지않은 특수문자는 해석하지 마세요.
  • 전역변수는 한개를 초과하면 안되고, 왜 전역변수를 사용했는지 설명할 수 있어야 합니다.
  • 새로운 명령어를 입력할 수 있는 프롬프트를 보여줘야 합니다.
  • 사용했던 명령어들을 up down으로 확인할 수 있는 working history가 있어야 합니다.
  • bash에서처럼 (PATH 변수나 상대, 절대 경로를 활용해) 올바른 실행파일을 찾고 실행할 수 있어야 합니다.
  • 다음과 같은 내장기능을 구현해야 합니다
    • -n옵션을 사용할 수 있는 echo
    • 오직 상대경로, 절대경로만 사용하는 cd
    • 옵션 없는 pwd
    • 옵션 없는 export
    • 옵션 없는 unset
    • 옵션이나 인자 없는 env
    • 옵션 없는 exit
  • '는 일련의 문자를 해석하지 않습니다.
  • "$를 제외한 일련의 문자를 해석하지 않습니다.
  • 리다이렉션
    • <는 입력을 리다이렉션 해야합니다.
    • >는 출력을 리다이렉션 해야합니다.
    • <<는 구분기호만 있는 줄이 나타날때까지 현재 소스에서 입력을 읽어들입니다.
    • >>는 출력을 덮어쓰기 하지 않고 입력파일에 이어쓰기로 리다이렉션 합니다.
  • Pipes
    파이프라인에 있는 각 명령어의 출력은 파이프를 통해서 다음 명령의 입력에 연결됩니다.
  • 환경변수는 다음과 같은 변수로 확장되어야 합니다 ($변수명)
  • $? 는 가장 최근에 실행된 포어그라운드 파이프라인의 종료상태로 확장되어야 합니다.
  • Ctrl + C , Ctrl + D, Ctrl + \ 는 bash와 동일하게 동작되어야하고 대화형일땐 다음과 같이 동작해야 합니다.
    • Ctrl + C는 새 라인에 새로운 프롬프트를 출력합니다.
    • Ctrl + D는 쉘을 종료합니다.
    • Ctrl + \는 아무것도 하지 않습니다.

요구한 부분 외에는 필요하지 않습니다.
만약 조금이라도 의심가는 부분이 있다면 bash를 참고하세요.

프로그램 정보

  • 프로그램 명
    minishell
  • Makefile
    Yes
  • 사용 가능 함수
    readline, rl_on_new_line, rl_replace_line, rl_redisplay, add_history, printf, malloc, free, write, open, read, close, fork, wait, waitpid, wait3, wait4, signal, kill, exit, getcwd, chdir, stat, lstat, fstat, unlink, execve, dup, dup2, pipe, opendir, readdir, closedir, strerror, errno, isatty, ttyname, ttyslot, ioctl, getenv, tcsetattr, tcgetattr, tgetent, tgetflag, tgetnum, tgetstr, tgoto, tputs
    minishell 사용가능 함수 정리
  • Libft 사용
    가능

[minishell] 사용가능 함수 정리
[minishell] 리다이렉션 및 here doc정리
[minishell] dup정리

0개의 댓글