#include #include #include extern int errno; extern char **environ; main() { pid_t pid; int ret; char c; do { printf("Soy el proceso padre; pulsa return para crear proceso hijo\n"); scanf("%c",&c); } while ( c != '\n'); /* Se intenta crear nuevo proceso */ pid = fork(); /* Comprobacion si todo ha ido bien */ if ( pid < 0 ) /* Si se cumple el if anterior, entonces error */ printf("ERROR: al intentar crear nuevo proceso\n"); else /* Si se cumple el else es que todo ha ido bien */ if ( pid > 0 ) /* Esto solo lo ejecuta el padre */ printf("El identificador de proceso de mi hijo es %d\n",pid); else { /* Esto solo lo ejecuta el hijo */ do { printf("Proceso hijo; pulse return para cargar y ejecutar comando date\n"); scanf("%c",&c); } while ( c != '\n' ); ret = execl("/bin/date","date", (const char *)0); if ( ret < 0 ) printf("ERROR: al cargar programa\n"); } }