尝试hook recv函数时,linux环境下errno报17

如果获取到的错误类型是 AlreadyExists,那么这个错误通常是由于套接字已经被绑定到了一个地址上,而你又试图将其绑定到另一个地址上导致的。如果你确定这个错误不应该出现,可以尝试打印一些调试信息,以便更好地理解问题的根本原因。如果你认为这个错误可以被忽略,可以在 else 分支中添加一个 continue 语句,以便跳过当前循环,继续等待读事件。

errno 17 对应的错误是 EEXIST,表示文件已经存在。这个错误通常不会出现在 recv 函数中,可能是你的 hook 实现中出现了一些问题。建议你检查一下代码,看看是否有其他地方出现了问题。另外,你可以尝试在 hook 实现中打印一些调试信息,以便更好地理解问题的根本原因。

1 个赞

解决了,https://github.com/dragon-zhang/open-coroutine-core-v2/pull/24,根本原因是epoll_ctl重复添加

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。