0

在我使用 kqueue 的 mac 上,它声明 udata 未更改。event_data然而,调用中返回的数组kevent正在被修改。什么可能导致这种情况?我正在传递指向转换为 void* 的字符串的指针,当我kevent在前 3 个字符之后读取时,其余的都被修改了。

谢谢

4

1 回答 1

1

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

通过kqueue64()将字段定义为uint64_t.

于 2015-04-19T00:46:19.240 回答