В настоящее время я пытаюсь использовать libevent для вызова функции каждые n минут/триггер события, который будет вызывать функцию, и было предложено использовать libevent. Я мог бы использовать его, чтобы постоянно вызывать функцию каждые n секунд, но не мог понять, как передавать им аргументы.
#include <stdio.h>
#include <sys/time.h>
#include <event.h>
void say_hello(int fd, short event, void *arg)
{
printf("Hello\n");
// printf("%d", (int *)arg[0])
}
int main(int argc, const char* argv[])
{
struct event ev;
struct timeval tv;
tv.tv_sec = 3;
tv.tv_usec = 0;
event_init();
// event_set(&my_event, 0, EV_PERSIST, my_function, NULL);
event_set(&ev, 0, EV_PERSIST, say_hello, NULL);
// evtimer_set(&ev, say_hello, NULL);
evtimer_add(&ev, &tv);
event_dispatch();
return 0;
}
NULL
вevent_set
, который вы можете использовать для передачи любого адреса, а затем вернуть его к правильному типу указателя вsay_hello
. - person Piotr Skotnicki   schedule 07.09.2019event_set()
? Я не знаком с функцией libevent с таким именем... Вы имели в видуevent_new()
? Если да, то это аргументcallback_arg
. Я также не вижуevent_init()
илиevent_dispatch()
... - person Shawn   schedule 07.09.2019event_set(&ev, 0, EV_PERSIST, say_hello, argv[0]);
, затемprintf("%s", (const char *)arg);
- person Piotr Skotnicki   schedule 07.09.2019