[pipex](1)pipex 개요



1️⃣ 목표

  • 새로운과제 pipex의 서브젝트를 읽고 파악하기


2️⃣ 기본지시사항

  1. Norminette기준에 따를 것
  2. 정의되지 않는 동작으로 프로그램이 예기치 않게 종료되면 안됩니다. (segmentation fault, bus eror, double free 등).
  3. 힙에 선언한 모든 메모리는 free로 처리되어 메모리 누수가 일어나면 안됩니다.
  4. Makefile을 만들어야하며 -Wall -Wextra -Werror플래그를 사용하여 컴파일을 진행해야하며, 컴파일 이후에 다시 리링크되면 안됩니다.
  5. Makefile은 다음의 규칙을 정의해야합니다.
    • $(NAME), all, clean, fclean, re
  6. 보너스파일에 _bonus붙이기.
  7. 왠만하면 프로젝트를 위한 테스터 프로그램을 만들기.
  8. 실행파일은 pipex로 이름을 지을 것.


3️⃣ pipex 기본파트 목표

  • pipex프로그램은 다음과 같이 실행됩니다.
./pipex file1 cmd1 cmd2 file2
  • 실행예시를 보여드리면 다음과 같습니다.
/* 실제 입력 */
./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 보너스파트 목표

  • 기본파트가 완벽하지않다면 보너스파트는 철저히 무시될 것입니다.
  • 기본파트에서 금지되었던 다양한 헤더, 라이브러리, 함수들을 사용할 수 있습니다.
  • 보너스 파트의 목표는 다음과 같습니다.
    1. Handle multiple pipes: 다중 파이프 구현하기
/* 실제 입력 */
./pipex file1 cmd1 cmd2 cmd3 ... cmdn file2

/* 다음의 결과와 동일하게 실행되야함 */
< file1 cmd1 | cmd2 | cmd3 ... | cmdn > file2
  1. Support << and >>: <<>> 구현하기.




© 2021.02. by kirim

Powered by kkrim