/* used by job.c - fork sleep child while parent does I/O after a sleep */ #include #include #include int main() { pid_t pid; if ((pid = fork()) == -1) {perror("fork in job"); exit(6); } else if (pid == 0) {/* child */ execlp("sleep","sleep_300_child_in_job","300",NULL); perror("exec of sleep in job"); _exit(7); } else {int i, c=' '; sleep(60); /* no output for first 60 seconds in parent */ do switch (c) {case 'p': for (i = 0; i < 10000000; i++) c += i; case 'x': case EOF: exit(8); case '\n': break; default : printf("job: Saw %c. Type character " "c=continue p=pause x=exit: ",c); }while ((c=getchar()) != EOF); } }