Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- • Scrivere un programma C che:
- • Crea un processo figlio, stampa il messaggio “In attesa” ed attende la terminazione del figlio.
- • Il figlio esegue il comando “ls -‐l” • Quando il figlio termina, il padre visualizza il messaggio “nuovo figlio”
- e crea un secondo processo figlio. •
- Il secondo figlio aspetta per 5 secondi, stampa a video un messaggio e termina.
- • Quando il processo figlio termina, il padre stampa a video il pid del processo terminato.
- */
- #include <stdio.h>
- #include <unistd.h>
- #include <sys/types.h>
- #include <sys/wait.h>
- int main(void) {
- int x;
- pid_t pid;
- pid_t pid2;
- pid = fork();
- if(pid == 0) {
- execl("/bin/ls", "ls", "-l", NULL);
- } else {
- printf("In attesa..");
- waitpid(pid, NULL, 0);
- printf("Mio figlio %d è terminato, nuovo figlio\n",pid);
- fflush(stdin);
- pid2 = fork();
- if(pid2 == 0) {
- sleep(5);
- printf("Ciao sono il secondo figlio\n");
- return 0;
- } else {
- waitpid(pid2, NULL, 0);
- printf("E' morto anche il mio secondo bambino, aveva pid = %d\n",pid2);
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement