[pipex] 과제 개요

woonchoi·2022년 1월 20일
0

42Cursus

목록 보기
1/9
post-thumbnail

pipex 과제의 목표는 간단하게 아래와 같은 쉘 명령어와 동일한 동작을 수행하는 프로그램을 만드는 것이다.

< file1 cmd1 | cmd2 > file2

구현해야할 기능은 정말 간단하지만, 내용을 자세히 살펴보면 호락호락하지는 않다.

우선 꼭 필요한 개념들에 대해 짚고 넘어가자.

프로세스

프로세스는 프로그램과, 그 프로그램이 메모리에서 실행되는 작업 단위를 의미한다.

프로그램을 실행하면 운영체제는 프로그램 코드가 요구하는 만큼의 리소스를 할당하고, 프로그램 코드는 램 위에 올라가서 실행된다.

리다이렉션

<: 지정된 파일의 내용을 표준 입력으로 넘긴다.
>: 표준 출력으로 넘어온 내용을 지정된 파일로 넘긴다.

파이프

cmd1 | cmd2: cmd1에서 발생한 표준 출력을 cmd2의 표준 입력으로 넘긴다.


이 내용들을 바탕으로 다시 아래 명령어를 해석해보자.

< file1 cmd1 | cmd2 > file2

처음 나오는 리다이렉션 기호의 앞에는 0(표준 입력)이 생략되어 있다고 보면 된다.

  • file1의 내용을 표준 입력으로 넘기고, cmd1을 실행한다.
  • cmd1의 출력 스트림을 파이프를 통해 cmd2의 표준 입력으로 넘긴다.
  • cmd2의 출력 스트림을 file2에 넘긴다.

mandatory의 내용은 단순히 위의 내용을 구현하는 것이다.

이를 위해 프로그램에 전달되는 매개변수를 파싱하는 함수들과, 과제에서 요구하는 기능을 구현해야 한다.

profile
개발공부

0개의 댓글

관련 채용 정보