- #include <sys/types.h>
- #include <sys/stat.h>
- #include <sys/wait.h>
- #include <fcntl.h>
- #include <stdio.h>
- #include <unistd.h>
- #include <stdlib.h>
- int main() {
- pid_t pid = fork();
- if (pid == 0) {
- pid_t pid1 = fork();
- pid_t pid2 = fork();
- if(pid1 == 0 || pid2 == 0) {
- printf("\nSono il processo: %d,figlio di %d \n", getpid(), getppid());
- return 0;
- }
- else {
- printf("\nSono il processo: %d,figlio di %d, padre di %d e %d \n", getpid(),
- getppid(), pid1, pid2);
- sleep(2);
- }
- return 0;
- }
- else { //padre
- printf("\nSono il processo %d., padre di %d \n", getpid(), pid);
- sleep(3);
- return 0;
- }
- }
