본문 바로가기

컴퓨터/언어,프로그래밍

간단한 pipe()에 대한 소스

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

main()
{
	int fds[2];
	
	pipe(fds);		/* Create the pipe */
	/* First child reconnects stdin to downstream end of pipe
	   and closes the upstream end
	*/
	if (fork() == 0) {
		dup2(fds[0], 0);
		close(fds[1]);
		execlp("sort", "sort", 0);
	}

	/* Second child reconnects stdout to upstream end of pipe
	   and closes the downstream end
	*/

	else if (fork() == 0) {
		dup2(fds[1], 1);
		close(fds[0]);
		execlp("who", "who", 0);
	}
	
	/* Parent closes both ends of pipe and waits for both children
	   to finish
	*/
	else {
		close(fds[0]);
		close(fds[1]);
		wait(0);
		wait(0);
	}
}

'컴퓨터 > 언어,프로그래밍' 카테고리의 다른 글

Dup2 를 이용한 Redirection 과 원상복귀  (0) 2009.05.27
Socket inheritance with fork/dup2/exec  (0) 2009.05.27
dup2()  (0) 2009.05.27
dup2  (1) 2009.05.27
fork() execl() wait()  (0) 2009.05.27
제주삼다수, 2L,... 오뚜기 진라면 매운... 상하목장 유기농 흰... 남양 프렌치카페 카... 고려인삼유통 홍삼 ... 종근당건강 오메가3... 요이치 카링 유무선...