2
가능한 중복 :
Pipe in C UNIX shell는 C에서 파이프를 생성
I 2 자식 프로세스 사이의 배관을 만들려 하였다 자식 1 파이프에 대한 입력 및 출력을 닫는다는 자식 2 출력을 닫고 입력을 받아들입니다 :
pipe(&fd[0]); //Create a pipe
proc1 = fork();
//Child process 1
if (proc1 == 0)
{
close(fd[0]); //process1 doenst need to read from pipe
dup2(fd[1], STD_OUTPUT);
close(fd[1]);
execvp(parameter[0], parameter); //Execute the process
}
//Create a second child process
else
{
//Child process 2
proc2 = fork();
if (proc2 == 0)
{
close(fd[1]);
dup2(fd[0], STD_INPUT);
close(fd[0]);
execvp(parameter2[0], parameter2);
}
//Parent process
else
{
waitpid(-1, &status, 0); //Wait for the child to be done
}
}
howev 어, 어딘가에서 잘못 가고 있는데 정확히 어디에서 오류가 없는지, 논리 오류가 더 많은지 알지 못합니다.
그래서 dup2 (fd [1], STD_OUTPUT)는 다음과 같아야합니다. dup2 (fd [1], STD_INPUT)? – user1003749
예, 미리 정의 된 매크로 인'STDIN_FILENO'와'STDOUT_FILENO'를 사용할 수 있습니다. –