gpt4 book ai didi

c - libev:如何将自定义数据与观察者相关联?

转载 作者:太空宇宙 更新时间:2023-11-04 04:32:48 26 4
gpt4 key购买 nike

我在我的 Linux 'c' 应用程序中将 libev 用于计时器和 io 事件,我想将自定义数据与事件相关联。在 libev 文档中,它暗示了 associating custom data但没有给出例子。

有人可以分享他们如何在他们的应用程序中处理相关的自定义数据吗?

最佳答案

而不是像这样将观察者传递给启动函数:

ev_io_init(&io_watcher);
ev_io_start(EV_A_ &io_watcher);

创建一个以观察者为第一个成员的结构并传递它:

struct client {
ev_io io;
int socket;
};

// ... later ...

struct client *my_client = calloc(1, sizeof(struct client));
my_client->socket = socket;

ev_io_init(&(my_client->io), my_cb, socket, EV_READ);
ev_io_start(EV_A_ &(my_client->io));

// ... later ...

static void my_cb (struct ev_loop *loop, ev_io *w_, int revents) {
struct client *w = (struct client *)w_;
// ...
}

这就是documentation说要做,以及我在自己的项目中使用的内容。

关于c - libev:如何将自定义数据与观察者相关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34009302/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com