검색어 입력폼

[운영체제] 프로세스간 통신

등록일 2004.07.05 한글파일한컴오피스 (hwp) | 4페이지 | 가격 500원

목차

1. 동기화의 이해
2. 프로세스간 통신

본문내용

- 프로그램 설명과 결과
fork()를 통해 만들어진 자식 프로세스는 date 명령어를 실행하기 위한 것이다. 부모 프로세스가 date의 결과를 읽어야 하기 때문에 자식 프로세스는 dup2(dup()나 dup2()는 사용하면 하나 이상의 프로세스가 같은 파이프에 데이터를 쓸 수 있게 함)를 호출하여 표준 출력을 pfd[1]로 연결하고 파이프에서 데이터를 읽지 않기 때문에 pfd[0]를 닫았다. 자식 프로세스는 execl을 호출하여 date 명령어를 실행했다. 부모 프로세스는 파이프에 쓰지 않기 때문에 pfd[1]를 닫고 필요한 data를 읽기 위해 read 함수를 호출하여 해당 요일인지를 검사한다. 해당 요일일 경우에는 'Today is _______.'가 해당 요일이 아닐 경우 'Today is not _______.'가 출력된다. 그리고 waitpid 함수를 호출하여 자식 프로세스의 종료를 기다린 후 자식 프로세스의 종료 상태를 가져온다.
[vi pipedate.c]로 프로그램을 작성한 후 [gcc pipedate.c -o pipedate]를 하여 컴파일 한 후 [./pipedate]를 실행한 결과는 위와 같다. 현재 요일이 수요일이기 때문에 수요일을 제외한 나머지는 'Today is not _______.'로 출력되었다.

참고 자료

없음
다운로드 맨위로