pike.git / lib / modules / Process.pmod

version» Context lines:

pike.git/lib/modules/Process.pmod:1033: Inside #if undefined(__NT__) and #if constant(fork) && constant(exece)
      pie=Stdio.File();    pied=pie->pipe();       if(!(pid=fork()))    {    mixed err=catch    {    if(cwd && !cd(cwd))    { -  error( "pike: cannot change cwd to %O: %m.\n", cwd ); +  error( "pike: cannot change cwd to %O: %s.\n", cwd, +  strerror(errno()) );    }       if (sizeof(fdp)>0 && fdp[0]) fdp[0]->dup2(Stdio.File("stdin"));    if (sizeof(fdp)>1 && fdp[1]) fdp[1]->dup2(Stdio.File("stdout"));    if (sizeof(fdp)>2 && fdp[2]) fdp[2]->dup2(Stdio.File("stderr"));    /* dup2 fdd[3..] here FIXME FIXME */    foreach (fd_to_close, Stdio.File f)    if (objectp(f)) { f->close(); destruct(f); }    pie->close();    destruct(pie);       pied->set_close_on_exec(1);       if (env)    exece(cmd,args||({}),env);    else    exece(cmd,args||({}));    -  error( "pike: failed to exece %O: %m.\n", cmd ); +  error( "pike: failed to exece %O: %s.\n", cmd, +  strerror(errno()) );    };       pied->write(encode_value(err));    exit(1);    }       foreach (fdp,object f) if (objectp(f)) { f->close(); destruct(f); }       pied->close();    destruct(pied);
pike.git/lib/modules/Process.pmod:1212:    opened += ({ ret });    return ret;    }    else if (objectp(f))    return f;    else    return 0;    };       if (low_daemon(nochdir, noclose) == -1) -  error("Failed to daemonize: %m.\n"); +  error("Failed to daemonize: %s.\n", strerror(errno()));    if (!modifiers)    return;       if (modifiers["cwd"])    cd(modifiers["cwd"]);       if (modifiers["stdin"])    getfd(modifiers["stdin"])->dup2(Stdio.stdin);       if (modifiers["stdout"])    getfd(modifiers["stdout"])->dup2(Stdio.stdout);       if (modifiers["stderr"])    getfd(modifiers["stderr"])->dup2(Stdio.stderr);       opened->close();   }   #endif