pipe 和 dup2运用理解
最近新学习pipe和dup2一起运用,下面的输出搞不明白是怎么来的
程序源代码:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main( )
{
int pfds[2];
if( pipe(pfds)==0 )
{
if( fork()==0 )
{
//close(1);
printf("child.\n");
dup2( pfds[1],1);
close( pfds[0]);
printf("child close read.\n");
execlp( "ls","ls","-l",NULL );
printf("child end.\n");
}
else
{
//close(0);
printf("parent.\n");
dup2(pfds[0],0);
close(pfds[1]);
printf("parent close write.\n");
execlp( "wc","wc","-l",NULL );
printf("parent end.\n");
}
}
return 0;
}
输出结果:
parent.
parent close write.
child.
65
为什么parent end 没有输出?还有65是怎么输出来的?整个的执行顺序是怎样?
请各位大侠指教!