Thank you very much, my problem solved! Can I ask other question? I find the evtimer_* macro as follow. It has evtimer_new but no evtimer_free? Is it means I don't need to free a evtimer_new return pointer? But I notice evtimer_new was defined as event_new, so I think it must be free by event_free, is it write? I had check the sample/timer_test.c, It just demo a stack base usage.
/** @name evtimer_* macros Aliases for working with one-shot timer events */ /**@{*/ #define evtimer_assign(ev, b, cb, arg) \ event_assign((ev), (b), -1, 0, (cb), (arg)) #define evtimer_new(b, cb, arg) event_new((b), -1, 0, (cb), (arg)) #define evtimer_add(ev, tv) event_add((ev), (tv)) #define evtimer_del(ev) event_del(ev) #define evtimer_pending(ev, tv) event_pending((ev), EV_TIMEOUT, (tv)) #define evtimer_initialized(ev) event_initialized(ev) /**@}*/ 在 12-4-19 下午11:02, "Nick Mathewson" <ni...@freehaven.net> 写入: >On Sat, Apr 14, 2012 at 4:15 AM, Dawen Rie <dawenh...@126.com> wrote: >> Hello everybody. I am a new user of libevent. I can't find the correct >>API >> to do my work. >> I had found the API: >> >> int bufferevent_write_buffer(struct bufferevent *bufev, struct evbuffer >> *buf); >> It will send all data of evbuffer. But I just want to send a special >> length not all. >> >> And API: >> int bufferevent_write(struct bufferevent *bufev, const void *data, >>size_t >> size); >> >> >> It require me copy out the data from evbuffer, I think it's >>inefficiency. >> >> So, is there andy API like: >> int bufferevent_write_buffer(struct bufferevent *bufev, struct evbuffer >> *buf, size_t size); >> >> It just send size of data in but? > >Hi! > >What you want to be looking at first is bufferevent_get_output(). It >returns an output evbuffer that you can add data to manually. The >bufferevent_write() and bufferevent_write_buffer() functions are thin >wrappers around bufferevent_get_output() and one of the evbuffer_* >functions. > >So now the question becomes, "how can I add move (but not all) of the >data from one evbuffer to another?" > >For that, see evbuffer_remove_buffer(). > >For more information, you might want to read the (perpetually >work-in-progress) reference manual at >http://www.wangafu.net/~nickm/libevent-book/ > >yrs, >-- >Nick >*********************************************************************** >To unsubscribe, send an e-mail to majord...@freehaven.net with >unsubscribe libevent-users in the body. *********************************************************************** To unsubscribe, send an e-mail to majord...@freehaven.net with unsubscribe libevent-users in the body.