리눅스 GCC 컴파일러로 pipe설계
- 최초 등록일
- 2009.09.28
- 최종 저작일
- 2009.04
- 6페이지/
한컴오피스
- 가격 1,000원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
소개글
작성한 파일은 모두 3개로 “Pipe.c”, “quick.h”, “random_data.c”로 이루어져 있습니다. "Pipe.c"는 이번 과제의 주제를 담고 있는 파이프와 프로세스간 통신 부분의 코드 이고, "quck.h"는 Child 프로세스가 사용하는 헤더 파일로써 Parent 프로세스에서 받은 데이터를 정렬할 때 쓰이는 퀵소트 코드를 작성했습니다. 마지막으로 "random_data.c" 코드는 "Pipe.c" 파일을 실행하기 전에 먼저 실행할 파일로써 임의의 데이터 50개를 작성해서 “data.dat” 파일을 생성하여 저장 합니다. 이때 임의의 데이터는 코드에 작성된 것과 같이 rand()를 발생시켜 5자리씩 끊도록 했습니다.
Pipe.c에 대해서 추가적으로 설명하면 부모와 자식에서 쓰일 파이프를 각각 따로 생성합니다. 그 후 fork()로 자식 프로세스를 생성합니다. 그 후의 코드는 자식과 부모 프로세스 부분으로 분기시켜 작성했습니다. Parent 부분은 "data.dat"에서 자료를 읽어 와서 자식에게 전달하는데 저희 조는 50개의 데이터만 읽어오는 것이 아니라 유연하게 읽어 올 수 있도록 ReadFromFile(int fd, int *arr)함수를 정의했습니다. 자료를 읽은 후 자식 프로세스에게 전달하고 자식 프로세스는 퀵소트를 시켜서 다시 부모프로세스에게 전달합니다.
컴파일 실행환경
페도라 리눅스 gcc 컴파일러
본문내용
저희 조는 리눅스 환경에서 GCC를 이용하여 설계했습니다.
작성한 파일은 모두 3개로 “Pipe.c”, “quick.h”, “random_data.c”로 이루어져 있습니다. "Pipe.c"는 이번 과제의 주제를 담고 있는 파이프와 프로세스간 통신 부분의 코드 이고, "quck.h"는 Child 프로세스가 사용하는 헤더 파일로써 Parent 프로세스에서 받은 데이터를 정렬할 때 쓰이는 퀵소트 코드를 작성했습니다. 마지막으로 "random_data.c" 코드는 "Pipe.c" 파일을 실행하기 전에 먼저 실행할 파일로써 임의의 데이터 50개를 작성해서 “data.dat” 파일을 생성하여 저장 합니다. 이때 임의의 데이터는 코드에 작성된 것과 같이 rand()를 발생시켜 5자리씩 끊도록 했습니다.
Pipe.c에 대해서 추가적으로 설명하면 부모와 자식에서 쓰일 파이프를 각각 따로 생성합니다. 그 후 fork()로 자식 프로세스를 생성합니다. 그 후의 코드는 자식과 부모 프로세스 부분으로 분기시켜 작성했습니다. Parent 부분은 "data.dat"에서 자료를 읽어 와서 자식에게 전달하는데 저희 조는 50개의 데이터만 읽어오는 것이 아니라 유연하게 읽어 올 수 있도록 ReadFromFile(int fd, int *arr)함수를 정의했습니다. 자료를 읽은 후 자식 프로세스에게 전달하고 자식 프로세스는 퀵소트를 시켜서 다시 부모프로세스에게 전달합니다.
참고 자료
없음