gpt4 book ai didi

c - 选择 EBADF : which FD is bad?

转载 作者:IT王子 更新时间:2023-10-28 23:54:37 25 4
gpt4 key购买 nike

我们的生产代码中存在一个长期存在的错误。这本质上是一个基于套接字的守护进程。它使用 select 监听一堆文件描述符。

偶尔(大约一天一次),select 将返回 EBADF。

我已经编写了代码来搜索错误的文件描述符,它循环遍历每个 fd 并在其上调用 select。这些调用从不返回 EBADF。我也试过 fstat。他们也从不返回 EBADF。

我还重写了守护进程以使用轮询。这没有帮助。

有人有其他想法吗? (除了我犯了一个愚蠢的错误,使用 select 很容易做到这一点)。

最佳答案

select 很可能是在关闭的文件描述符上调用的。通常的来源是重用 fd_set 而不重新初始化它。你在信号处理程序中有什么进展吗? (比如在 HUP 上重新打开日志文件?)

关于c - 选择 EBADF : which FD is bad?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/883282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com