1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
/* * sleep.c */ #include <errno.h> #include <stdlib.h> #include <time.h> #include <unistd.h> unsigned int sleep(unsigned int seconds) { struct timespec ts; ts.tv_sec = seconds; ts.tv_nsec = 0; if (!nanosleep(&ts, &ts)) return 0; else if (errno == EINTR) return ts.tv_sec; else return -1; }