C言語なら俺に聞け(入門篇) Part 22
■ このスレッドは過去ログ倉庫に格納されています
0213デフォルトの名無しさん
2007/12/04(火) 00:14:00今Unixシステムコールでパイプを使う練習してるのですが、
下のように書くと親プロセスがread()のあたりで止まってしまいます。
これはなぜなんでしょうか。
int main(int argc, char ** argv)
{
pid_t pid = fork() ;
int fd[2] ;
pipe(fd) ;
if( pid == 0 )
{
close(1) ;
dup2(fd[1],1) ;
execlp("echo","echo","hoge",NULL) ;
}
else if( pid > 0 )
{
int status ;
close(0) ;
dup2(fd[0],0) ;
waitpid(pid,&status,0) ;
char buffer[10] = {'\0'} ;
read(0,buffer,sizeof(buffer)) ; // ここで止まる
printf("%s",buffer) ;
printf("end\n") ;
}
return 0 ;
}
■ このスレッドは過去ログ倉庫に格納されています