[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개의 댓글