#include #include #include #ifdef _WIN32 /* for sleep function */ #include void mysleep(int sec) { Sleep((DWORD)sec * 1000); } #else /* Unix/POSIX */ #include void mysleep(int sec) { /* could use nanosleep, but on Solaris it needs -lrt */ sleep(sec); } #endif int main(int argc, char* argv[]) { int status = 0; char line[1000]; printf("stdout 1\n"); fflush(stdout); fprintf(stderr, "stderr 1\n"); fflush(stderr); if (argc > 1 && strcmp(argv[1], "1") == 0) { while(fgets(line, 1000, stdin)) printf("stdin: %s", line); fflush(stdout); } if (argc > 1 && strcmp(argv[1], "1")) { status = atoi(argv[1]); } if (argc > 1 && strcmp(argv[1], "infinite_loop") == 0) { printf("Going to infinite loop...\n"); fflush(stdout); while(1); /* infinite loop */ } if (argc > 2 && strcmp(argv[1], "sleep") == 0) { int sec = atoi(argv[2]); printf("Sleeping for %d seconds...\n", sec); fflush(stdout); mysleep(sec); printf("Done sleeping for %d seconds.\n", sec); fflush(stdout); } exit(status); }