주의할 점들
- - 항상 norm 맞추기
- - 비정상적 종료 절대 안 된다
- - 메모리 누수 확인
- - 컴파일시 w플래그 넣기
- - 메이크파일에 $(NAME), all, clean, fclean, re 규칙 넣기 </p>
</li>
- 보너스 제출시 메이크파일에 bonus 규칙 넣기. 보너스는 _bonus.{c/h}로 다른 파일에 작성해야 한다. 필수와 보너스는 따로 채점된다.
- 프로젝트에서 libft사용하게 해준 경우라면 libft라는 폴더에 메이크파일과 소스를 같이 넣어야 한다. 프로젝트 전체의 메이크파일은 libft의 메이크파일을 실행시켜서 라이브러리를 컴파일해야 한다.
- 실행 파일명은 pipex로 해야 한다.
- 에러 처리 잘 해야 함. 긴가민가하면 쉘 커맨드 '< file1 cmd1 | cmd2 > file2'가 하는 것과 비슷하게 에러 처리 해라.
</ol>
허용된 함수
open / close / read / write / malloc / waitpid / wait / free / pipe / dup / dup2 / execve / fork / perror / strerror / exit
목표
pipex 프로그램은 다음과 같이 실행된다.
$\> ./pipex file1 cmd1 cmd2 file2
이는 다음의 쉘 커맨드 실행과 동일한 역할을 한다.
```False
$> < file1 cmd1 | cmd2 > file2
예시
$> ./pipex infile ``ls -l'' ``wc -l'' outfile
```
\-\> "\< infile ls \-l \| wc \-l \> outfile"과
동일하게 기능.
```False
$> ./pipex infile ``grep a1'' ``wc -w'' outfile
-> "< infile grep a1 | wc -w > outfile"과 동일하게 기능.
보너스 파트
(! 필수 파트가 완벽해야 함. 잘못된 사용에도 프로그램이 문제를 일으키는 경우가 없어야 한다.)
-
- multiple pipe를 다루도록 해라
$> ./pipex file1 cmd1 cmd2 cmd3 ... cmdn file2 ``` 이는 다음과 동일. ```False $> < file1 cmd1 | cmd2 | cmd3 ... | cmdn > file2 ``` 6. \- \<\<와 \>\>를 구현.