codice:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#define CMD_MAX 256
extern char **environ;
int main(int argc, char **argv){
char cmd[CMD_MAX];
pid_t child;
while(1){
fgets(cmd, CMD_MAX - 1, stdin);
cmd[CMD_MAX - 1] = '\0';
if((child = fork()) == 0){
if(execvp(cmd, argv) == -1){
perror("Errore Errore");
exit(EXIT_FAILURE);
}
}
else if(child < 0){
perror("Errore Errore il processo ha dato forfeit");
}
else{
int status;
pid_t childToWait = wait(&status);
printf("%d termina R.I.P.\n", childToWait);
}
}
return 0;
}
Direi che è un buon inizio, no ?