- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在使用 epoll library 用 C 语言开发服务器我有一个关于如何为 struct epoll_event
处理内存的问题。我在一些在线示例中注意到,当进行 epoll_ctl
调用时,events
参数在堆栈上分配,然后传递指针,如下所示:
struct epoll_event ev;
ev.events = EPOLLIN;
epoll_ctl(epfd, EPOLL_CTL_ADD, sockfd, &ev);
现在我们都知道函数返回时 ev
会发生什么。我的问题是:epoll 库是在内部复制这些值还是依赖于您传递给堆分配的结构?上面的例子会完全破坏我的 react 器实现吗?如果是这样,跟踪我的堆分配 epoll_event
结构的最佳方法是什么?
感谢您的宝贵时间。
最佳答案
一切都很好。 epoll_ctl
函数是一个简单的系统调用包装器,当函数返回时它将完全完成。不需要来自用户空间的更多数据。该结构只是一种打包参数的方法。
关于c - 使用 struct epoll_event 处理内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12982385/
我正在使用 epoll library 用 C 语言开发服务器我有一个关于如何为 struct epoll_event 处理内存的问题。我在一些在线示例中注意到,当进行 epoll_ctl 调用时,e
在互联网上浏览代码时,我经常看到这样的片段: struct epoll_event event; memset(&event, 0, sizeof(event)); 如果事件填写完整,这种模式对我来说
我一直在寻找 this question 的答案我遇到了 Linux 中的函数 timerfd_create 和 epoll。在一个教程中说 epoll_ctl() 有一个 epoll_data_t
Linux kernel manpages声明epoll_ctl过程如下: int epoll_ctl(int epfd, int op, int fd, struct epoll_event *ev
如果 GCC 构建选项带有 -mms-bitfields ,则 epoll_event.data.u64 值可以通过 epoll_wait 截断为 4 字节值>. 我有一个使用 epoll 的套接字服
我是一名优秀的程序员,十分优秀!