pike.git / lib / modules / Process.pmod

version» Context lines:

pike.git/lib/modules/Process.pmod:27:       pid=fork();       if(pid==-1)    error("No more processes.\n");       if(pid)    {    return pid;    }else{ -  if(stdin) +  if(stdin) {    stdin->dup2(File("stdin")); -  +  stdin->close(); +  }    -  if(stdout) +  if(stdout) {    stdout->dup2(File("stdout")); -  +  stdout->close(); +  }    -  if(stderr) +  if(stderr) {    stderr->dup2(File("stderr")); -  +  stderr->close(); +  } +  ::close();    exec("/bin/sh","-c",s);    exit(69);    }   }      string popen(string s)   {    object p;    string t;       p=file::pipe();    if(!p) error("Popen failed. (couldn't create pipe)\n");    spawn(s,0,p,0); -  +  p->close();    destruct(p);       t=read(0x7fffffff);    if(!t)    {    int e;    e=errno();    close();    error("Popen failed with error "+e+".\n");    }else{