gpt4 book ai didi

c - 关闭 [close(3)] 和清除 [fd_clr(3)] 文件描述符有什么区别?

转载 作者:太空宇宙 更新时间:2023-11-04 10:00:25 25 4
gpt4 key购买 nike

我遇到了自动化软件测试的问题,当我在 fd 中使用 close(3) 后使用 fd_clr(3) 时,这归咎于使用释放的资源。这样做有什么问题吗?

for(i = 0; i < nfds; ++i) {
if (FD_ISSET(i, &myFdSet)) {
close(i);
FD_CLR(i, &myFdSet);
}
}

最佳答案

FD_CLR() 仅更改本地 fd_set,这是一个 C 数据结构,用于存储有关文件描述符列表的信息。

close() 是关闭文件描述符的系统调用。

fd_set 用于select() 系统调用。使用 select(),您可以获得有关存储在 fd_set 结构中的文件描述符列表状态的信息。

您在 close() 下方看到 FD_CLR() 的原因是不再需要/目的询问状态是否关闭了文件描述符.

关于c - 关闭 [close(3)] 和清除 [fd_clr(3)] 文件描述符有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56760028/

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