Kqueue udata字段变化

Kqueue udata field changing

在mac我正在使用kqueue,它声明udata没有改变。然而,在 event_data of kevent 调用中返回的数组正在做一些修改。什么会导致这个?我正在传递指向转换为 void* 的字符串的指针,当我在前 3 个字符后的 kevent 之后读取时,其余的都被修改了。

谢谢

内核只保存和returns指针本身的值,而不是它指向的内存的内容。很有可能您正在传递指向稍后将被覆盖的内存的指针。

kqueue64() 系统调用通过将字段定义为 uint64_t.

对此更明确一点