/* FILE: myopen.c */ #include #include #include #include #include int main () { int pid; pid = fork(); if (pid < 0) { /* fork fallita */ printf("Errore in fork\n"); exit(1); } if (pid == 0) { /* figlio */ int fd; /* simuliamo ridirezione dello standard input */ close(0); if ((fd = open("pippo", O_RDONLY)) < 0) { puts("ERRORE in apertura"); exit(2); } printf("Ho aperto il file pippo con fd = %d\n", fd); printf("Esecuzione di programma che visualizza file gia` aperto\n"); execl("prova", "prova", (char *)0); printf("Errore in execl\n"); exit(3); } /* padre */ wait ((int *)0); printf("Terminato figlio\n"); exit (0); }