Innanzitutto bisogna dire che le execXX si usano in genere dopo che è stato fatto il fork del processo. Questo perché una exec rimpiazza di brutto l'immagine del processo corrente con il nuovo processo caricato.Originariamente inviato da magicofred
vorrei chiedervi degli esempi pratici e reali su come usare le varie exec
Si fa una fork() e poi nel processo figlio si esegue una exec. Ecco un esempio:
codice:#include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> int main (void) { pid_t pid; pid = fork (); if (pid == 0) { /*---- figlio ----*/ int ret; char *args[4] = { "ls", "-laA", "/tmp", NULL }; ret = execvp (args[0], args); if (ret == -1) perror ("execvp"); } else if (pid != -1) { /*---- padre ----*/ int status; waitpid (pid, &status, 0); printf ("Status: %d\n", status); } else perror ("fork"); return 0; }

Rispondi quotando