我正在使用epoll library在C中開發一個服務器,我對如何處理struct epoll_event
的內存有個疑問。我也注意到,在作出epoll_ctl
呼叫時,該events
參數分配在堆棧上,然後將指針傳遞,像這樣一些網上的例子:使用struct epoll_event處理內存
struct epoll_event ev;
ev.events = EPOLLIN;
epoll_ctl(epfd, EPOLL_CTL_ADD, sockfd, &ev);
現在大家都知道會發生什麼ev
當函數返回。我的問題是:epoll庫是否在內部複製這些值,或者它是否依賴於您傳遞的堆被分配的結構?上面的例子會完全破壞我的反應堆實施嗎?如果是這樣,跟蹤我的堆分配epoll_event
結構的最佳方式是什麼?
謝謝你的時間。
如果「我們都知道發生了什麼」,那你爲什麼要問? –
當我說「我們都知道發生了什麼」時,我的意思是當函數返回時釋放堆棧分配的內存。 –