Я заполняю структуру timepec. Предполагается, что пользователь всегда будет вводить значения в секундах (также может быть 0,01 секунды), поэтому мы конвертируем секунды в наносекунды, используя: lt_leak_start = atoll(getenv("LT_LEAK_START")) * sec_to_nsec;
где переменная static long sec_to_nsec = 1000000000;
, а затем используем его в качестве аргумента для settime: timer_settime(timerid,0,&its,NULL)
, Но при этом возникает ошибка: settimer failed: Invalid argument
Пожалуйста, помогите мне.
Заранее спасибо.
enter code here
struct timespec {
time_t tv_sec; /* Seconds */
long tv_nsec; /* Nanoseconds */
};
struct itimerspec {
struct timespec it_interval; /* Timer interval */
struct timespec it_value; /* Initial expiration */
};
Код, который я пытаюсь найти здесь:
static long sec_to_nsec = 1000000000;
lt_leak_start = atoll(getenv("LT_LEAK_START")) * sec_to_nsec;
/* Setting timer interval */
its.it_interval.tv_sec=0;
its.it_interval.tv_nsec=1;
/* Setting timer expiration */
its.it_value.tv_sec=0; // First expiry after 1 sec
its.it_value.tv_nsec=lt_leak_start;
timer_create(CLOCK_REALTIME,&sevp,&timerid);
if(timer_settime(timerid,0,&its,NULL)==-1) {
perror("settimer failed");
exit(1);
}