linux下的父进程代码块用了wait()或者sleep()后的奇怪现象,求解决。。
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
main()
{
pid_t pid;
int fp[2];
char nread;
char buf[100];
if(pipe(fp)<0){
printf("pipe error");
exit(1);
}
pid=fork();
if(pid==0){
printf("\n");
close(fp[1]);
sleep(2);
if((nread=read(fp[0],buf,100))>0){
printf("read %d is %s",nread,buf);
}
close(fp[0]);
}
if(pid>0){
printf("hello");
close(fp[0]);
if((write(fp[1],"hello world",10))!=-1){
printf("write to pipe success");
}
close(fp[1]);
wait(NULL);
}
}