4

次のコードがあります。

#include <stdio.h>
#include <sys/time.h>
#include <event.h>

void say_hello(int fd, short event, void *arg){
        printf("Hello\n");
}

int main(int argc, const char* argv[])
{
  struct event ev;
  struct timeval tv;

  tv.tv_sec = 3;
  tv.tv_usec = 0;

  event_init();
  evtimer_set(&ev,say_hello,NULL);
  evtimer_add(&ev, &tv);
  event_dispatch();

  return 0;
}

問題は、「hello」が一度印刷されてからプログラムが終了することです...

「こんにちは」を無期限に出力したい。

これを行う方法?よろしくお願いします。

4

5 に答える 5

5

main のコードを read に変更する

evtimer_set(&ev,say_hello,&ev);

そしてあなたのsay_hello関数を作ります

void say_hello(int fd, short event, void *arg){
    struct event *ev = arg;
    struct timeval tv;


    printf("Hello\n");
    tv.tv_sec = 3;
    tv.tv_usec = 0;

    evtimer_add(ev, &tv);
}
于 2013-08-24T00:44:07.663 に答える
1

evtimer_set(3)のマニュアルページを読みましたか?もう一度お読みください。

フラグを使用するEV_PERSISTか、コールバックevtimer_addから呼び出すことをお勧めしsay_helloます。

于 2012-11-27T13:32:21.520 に答える