Kontrolliert zurück nach "execvp()"?


if(pid == 0)
{
      execvp(cmd, args);
      //printf("hello"); //apparently, putting this or not does not work.
      _exit(-1);
}
else
{
      //parent process work
}

"execvp()" ersetzt das aktuelle Programm mit den zu-sein-execed Programm (natürlich in der gleichen Prozess-Kontext). Also, setzen, sagen, alle printf () - Aufrufe nach execvp() funktioniert nicht. Das ist das, was die docs sagen, und ich habe überprüft, dass es als gut.

Aber dann, warum ist _exit() benötigt..? Tut es so passieren, dass die Kontrolle zurück zu Aussagen, post execvp() ?

Ich dankbar für jegliche Hinweise.

Dank

  • Sie fehlt pid = fork(); aus der vorhergehenden Zeile. Das ist ein bisschen wichtig!
  • Oder vielleicht if ((pid = fork()) < 0) fatal("fork failed"); da es alles über fehlerhafte system-Aufrufe.
InformationsquelleAutor Ajay Garg | 2010-05-19
Schreibe einen Kommentar