Могу ли я передать timeval в качестве аргумента для сна? - PullRequest
0 голосов
/ 22 апреля 2020

Могу ли я передать структуру timeval в качестве аргумента для функции сна? Я хочу сделать это, так как структура timeval может быть очень точной, так как вы можете контролировать микросекунды, и я хотел бы поспать некоторое количество микросекунд. Могу ли я сделать это?

1 Ответ

1 голос
/ 22 апреля 2020

Вы можете сделать что-то вроде:

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*/

...