728x90
반응형
[IPC] pipe 예제 코드
1. 구조
- 부모 프로세스와 자식 프로세스간에 통신을 할때 사용 한다.
- 자세한 설명은 다음 포스트 참조
[프로세스간 통신] IPC(inter process communication) 종류
2. 예제 코드
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
int main(void) {
int fd[2], nbytes, rc = 0;
pid_t childpid;
char string[] = "Hello, world!\n";
char readbuffer[80];
if ((rc = pipe(fd)) < 0) {
printf("Creating Pipe is Error [%d]\n", rc);
} if((childpid = fork()) == -1) {
perror("fork");
return 0;
}
if (childpid == 0) {
/* 자식 프로세스는 Write할꺼기에 Read FD는 닫아준다 */
close(fd[0]);
/* Pipe에 메시지 보내기 */
write(fd[1], string, (strlen(string)+1));
return 0;
} else {
/* 부모 프로세스는 Read할꺼기에 Write FD는 닫아준다 */
close(fd[1]);
/* Pipe에서 메시지 읽기 */
nbytes = read(fd[0], readbuffer, sizeof(readbuffer));
printf("Received Parent string: %s [%d]", readbuffer, nbytes);
}
return 0;
}
728x90
반응형
'프로그래밍 > ExampleCode.com' 카테고리의 다른 글
[semaphore] c++ semaphore example code (0) | 2021.07.10 |
---|---|
[IPC] shared memory 예제 코드 (5) | 2018.09.20 |
[IPC] named pipe 예제 코드 (0) | 2018.09.20 |
[IPC] message queue 예제 코드 (0) | 2018.09.20 |
[IPC] 메모리 맵 mmap() 예제 코드 (0) | 2018.09.20 |