Вы можете сделать что-то вроде:
struct timeval {long tv_sec; long tv_usec;};
struct timezone {int tz_minuteswest; int tz_dsttime; };
struct timeval tp;
struct timezone tzp;
int i;
i = gettimeofday(&tp,&tzp);
И, используя это, вы сможете реализовать функцию задержки. Пожалуйста, посмотрите этот пример .
Однако, если вы хотите точную задержку, вы можете использовать функции, которые позволяют вам получить более точную задержку, например nanosleep()
struct timespec tim, tim2;
tim.tv_sec = 1;
tim.tv_nsec = 1000000000L; //1,000,000,000 nanoseconds = 1 second
nanosleep(&tim , &tim2);
/*code after 1 second sleep*/