注意epoll_event这个结构体

typedef union epoll_data {
    void *ptr;
    int fd;
    __uint32_t u32;
    __uint64_t u64;
} epoll_data_t;

struct epoll_event {
    __uint32_t events;      /* Epoll events */
    epoll_data_t data;      /* User data variable */
};

开始写了一段代码:

struct epoll_event epv = {0, {0}};  // 这段是抄袭的,开始看着有点奇怪,但是可以运行

epv.events = 5;
epv.data.ptr = &tmpValue;
epv.data.fd = 8;

// 发现到这里 epv.data.ptr 的值被改了

后面注意看epoll_data是个 union.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容