Prayer

在一般中寻求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

fork小细节

Posted on 2009-09-18 11:07 Prayer 阅读(149) 评论(0)  编辑 收藏 引用 所属分类: LINUX/UNIX/AIX
正确  
if((pid=fork())<0){
      printf("fork errro %d,%s\n",errno,strerror(errno)); 
   }else if (pid==0){
     if(execl("/try1/print",(char*)&mystr,(char*)0)<0)
         printf("execl errro %d,%s\n",errno,strerror(errno));     
   }

错误
   if((pid=fork())<0){
      printf("fork errro %d,%s\n",errno,strerror(errno)); 
   }else {
     if(execl("/try1/print",(char*)&mystr,(char*)0)<0)
         printf("execl errro %d,%s\n",errno,strerror(errno));     
   }
如果这样,print会被执行两次,一次是子进程,一次是父进程。

只有pid==0的时候,才是子进程。还存在pid>0的情况,是父进程。

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理