/* ugly nonportable hack to make millisleep() function compile with c99 */ #ifndef __USE_POSIX199309 #error need #define '#define _POSIX_C_SOURCE 199309L' in main program #endif #include #include #include /* functions to generate a random integer in [start, end] */ void random_in_range_setup(int seed) { srand(seed); } int random_in_range(int start, int end) { /* use method described in "rand" man page */ return start + ((double) (end-start+1) * rand()/(RAND_MAX + 1.0)); } /* function to sleep N millisecs -- not very portable */ void millisleep(long milliseconds) { const long ten6 = 1000000; const long ten9 = 1000000000; long nanoseconds = milliseconds * ten6; struct timespec sleep_time = { nanoseconds / ten9, nanoseconds % ten9}; nanosleep(&sleep_time, NULL); }