#include #include #include #include int main(int argc, char *argv[]) { if (argc != 3) { fprintf(stderr, "usage: nowait \n"); exit(1); } unsigned int delay_ms = atoi(argv[1]); int child_newline = atoi(argv[2]); struct timespec delay; delay.tv_sec = delay_ms / 1000; delay.tv_nsec = (delay_ms % 1000) * 1000000; printf("msg from parent process\n"); fflush(stdout); switch(fork()) { case -1: perror("fork"); return 1; case 0: if (delay_ms > 0) nanosleep(&delay, NULL); if (child_newline) printf("msg from child process\n"); else printf("msg from child process"); fflush(stdout); return 0; } return 0; }