Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在我使用 kqueue 的 mac 上,它声明 udata 未更改。event_data然而,调用中返回的数组kevent正在被修改。什么可能导致这种情况?我正在传递指向转换为 void* 的字符串的指针,当我kevent在前 3 个字符之后读取时,其余的都被修改了。
event_data
kevent
谢谢
内核只保存并返回指针本身的值,而不是它指向的内存的内容。很有可能您正在传递一个指向稍后将被覆盖的内存的指针。
通过kqueue64()将字段定义为uint64_t.
kqueue64()
uint64_t