Ciao,
vorrei il vostro aiuto per un problema che è sicuramente banale ma che non riesco a risolvere.
La traccia è la seguente:
Realizzare un programma C con le seguenti caratteristiche:
1. deve creare un processo figlio ;
2. il processo figlio deve eseguire il comando passato come argomento al programma :
esempio: ./run cp file1.txt file2.txt
esempio: ./run rm file1.txt
[nei precedenti esempi, run e l'eseguibile che dovete creare]
3. il processo padre attende il completamento del figlio.
Il mio codice è invece questo:
codice:
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <fcntl.h>
#include <sys/stat.h>
int main (int argc, char *argv[])
{
pid_t pid;
int status;
if ((pid=fork()) == 0)
{
//codice figlio
execv("/home/mirko/so/eserc4", argv[1]);
//ritorna solo in caso di errore
exit(-1);
} else {
//codice padre
wait(&status);
printf("Il processo figlio %d è temrinato con esito %d\n",pid, status);
}
exit(0);
}
Grazie delle eventuali risposte