pipe(), dup2(), fork() 활용 연습문제
01. pipe() | 자식 프로세스에서 부모 프로세스로 메시지 "I am your child."를 보내는 프로그램을 작성하라. 자식과 부모 프로세스는 각각 주고 받은 메시지를 출력하여야 한다.
(조건1) 출력 내용은 다음과 같아야 한다.
PID 101 sent -> I am your child.
PID 100 received -> I am your child.
[실행결과]
02. pipe() | 부모 프로세스에서 자식프로세스로 메시지 "I am your parent."를 보내는 프로그램을 작성하라. 부모와 자식 프로세스는 각각 주고 받은 메시지를 출력하여야 한다.
(조건1) 출력 내용은 다음과 같아야 한다.
PID 100 sent -> I am your parent.
PID 101 received -> I am your parent.
[실행결과]
03. pipe() | 자식 프로세스에서 임의의 문자를 부모프로세스로 보내면 대문자로 바꾸어 자식 프로세스에게 보내는 프로그램을 작성하라.
자식 프로세스는 메시지를 보낸 후 “PID 101 sent ‘a’.”출력
부모 프로세스는 메시지를 받은 후 “PID 100 received ‘a’.”출력
부모 프로세스는 메시지를 보낸 후 “PID 100 sent ‘A’.”출력
자식 프로세스는 메시지를 받은 후 “PID 101 received ‘A’.”출력
[실행결과]
04. pipe(), dup2() | who 명령어의 출력 결과를 입력으로 받아서 wc 명령어를 실행하고 표준출력으로 출력하는 프로그램을 작성하라. 작성 후 쉘명령어 'who | wc' 와 출력 결과가 같은지 확인하라.
fork()를 사용하여 자식 프로세스를 만들고 부모와 자식프로세스에 각각 dup2() 함수를 적용하여 파이프로 연결한다.
[실행결과]