c在linux下编程fork()遇到问题了。
我写了程序,fork()后,加了个printf(),然后再往后,调用getenv时候弄错了东西。
开始运行怎么反应都没有,这个printf()就是打不出来而且是放在后面的都printf()都打不出来。。但是在fork()前加printf()就可以打出来。
后来把后面getenv错误改掉了。。就可以打出来了。这是为什么啊,大概程序是这样的
printf("1:");
if ((childpid=fork())<0)
err_dump("server can't fork ");
else if(childpid>0)
{
printf("2:");
close(newsockfd);
return(childpid);
}
close(sockfd);
sockfd=newsockfd;
........省
getenv("SCIENCE");
我开始弄错的是SCIENCE,拼写错了。
总的来说就是开始后面错,能打出“1”不能打出“2”,后来改了错,都能打了。。
为什么啊?请指教啊~