[pipex](1)pipex 개요
1️⃣ 목표
- 새로운과제
pipex
의 서브젝트를 읽고 파악하기
2️⃣ 기본지시사항
Norminette
기준에 따를 것- 정의되지 않는 동작으로 프로그램이 예기치 않게 종료되면 안됩니다. (segmentation fault, bus eror, double free 등).
- 힙에 선언한 모든 메모리는
free
로 처리되어메모리 누수
가 일어나면 안됩니다. Makefile
을 만들어야하며-Wall -Wextra -Werror
플래그를 사용하여 컴파일을 진행해야하며, 컴파일 이후에 다시 리링크되면 안됩니다.Makefile
은 다음의 규칙을 정의해야합니다.$(NAME)
,all
,clean
,fclean
,re
- 보너스파일에
_bonus
붙이기. - 왠만하면 프로젝트를 위한
테스터 프로그램
을 만들기. - 실행파일은
pipex
로 이름을 지을 것.
3️⃣ pipex 기본파트 목표
pipex
프로그램은 다음과 같이 실행됩니다.
- 실행예시를 보여드리면 다음과 같습니다.
./pipex infile "ls -l" "wc -l" outfile
< infile ls -l | wc -l > outfile
4️⃣ 사용가능한 함수
open
close
read
write
malloc
free
dup
dup2
execve
fork
perror
strerror
exit
pipe
access
unlink
waitpid
wait
5️⃣ pipex 보너스파트 목표
- 기본파트가 완벽하지않다면 보너스파트는 철저히 무시될 것입니다.
- 기본파트에서 금지되었던 다양한 헤더, 라이브러리, 함수들을 사용할 수 있습니다.
- 보너스 파트의 목표는 다음과 같습니다.
Handle multiple pipes
: 다중 파이프 구현하기
./pipex file1 cmd1 cmd2 cmd3 ... cmdn file2
< file1 cmd1 | cmd2 | cmd3 ... | cmdn > file2
Support << and >>
:<<
와>>
구현하기.