반응형

pipe 2

fork, pipe를 이용한 간단한 프로세스 통신 예제

/* * http://sosal.tistory.com/ * made by so_Sal */ #include #include #include int main(void){ char buffer[BUFSIZ]; int fd[2]; if(pipe(fd)==-1){ perror("pipe error..\n"); exit(0); } pid_t pid; pid = fork(); if(pid == -1){ perror("fork error..\n"); exit(0); } else if(pid==0){ //자식 프로세스의 경우// write(fd[1],"This letter is from child",BUFSIZ); sleep(1); //레이스 컨디션 문제 발생. 부모보다 자식이 먼저 fd에 있는 자료를 //가져갈 수 ..

Linux/Linux_Source 2009.12.18

IPC - 03. pipe() 를 통한 프로세스 통신

/* * http://sosal.tistory.com/ * made by so_Sal */ 각각의 프로세스는 독립적인 메모리 영역을 가지고 있다. fork() 함수를 쓰더라도, 그 이전의 변수들이 복사되는 것일 뿐, 부모 프로세스와 자식 프로세스가 그 변수를 공유한다던가, 정보를 주고받는 행동은 방법이 없었다. 동시에 2개의 프로그램을 실행시키는데, 변수를 공유하려면 어떻게 해야할까? 공유메모리 기법을 쓰는 방법이 있고, pipe를 통해 변수를 공유한다기 보다 정보를 주고 받는 방법이 있다. 여기 포스팅되는 글은 단순히 buffer를 주고받을 수 있는 pipe에 대해서 설명하려 합니다. 부모프로세스에서 buffer 문자열을 자식프로세스에게 줄 수 있고, 자식 프로세스 역시 답장 가능입니다. ㅋ (아참, ..

반응형