我被困在libev中传递参数的情况下。Libev,如何将参数传递给相关的回调函数
通常,libev接收包的功能一样* receive_callback *,这是确定的,但在实践中,我们需要派遣一个相对* write_callback *根据接收到的包来处理特定的工作。例如:
S_RECV_MSG* pstRecvMsg = (S_RECV_MSG*) recv_buff;
switch(pstRecvMsg->wMsgType) {
case 1:
ev_io_init(w, write_callback1, w->fd, EV_WRITE);
break;
case 2:
ev_io_init(w, write_callback2, w->fd, EV_WRITE);
break;
case 3:
// .......
}
我的问题是,如果write_callbackX
还具有读的recv_buff的具体内容,我们怎么能传递recv_buff参数传递给callbackX?我们是否必须在这里承担全局变量的负担和丑陋?
这是正确的答案,如果你想把它写成一个真实的答案并接受它,让其他人更容易找到信息。 – dnaq 2012-07-03 19:11:32
至少你回去继续研究,而不是等待回答:)很高兴你解决了它。 – 2013-01-25 16:09:39
如果我在某些数据中使用堆内存,我建议将您的解决方案编写为答案(然后接受它),而不是在问题 – Shahbaz 2013-02-05 18:10:14