gpt4 book ai didi

c - 在同一功能中对一个 fd 进行多次关闭调用是否重要?

转载 作者:太空狗 更新时间:2023-10-29 16:33:27 25 4
gpt4 key购买 nike

我只想知道在 fd 上连续两次关闭的行为是什么。

例如-

close(fd);
close(fd);

[fd 是一个整数]

最佳答案

第一次调用应该返回 0 ;第二次调用应返回 -1 , 并设置 errnoEBADF .

您应该通过设置 fd 来防止第二次调用发生到一个已知的错误号码,例如一个-1在第一次调用 close 后立即,然后检查 fd在进行第二次调用之前(如果 fd-1 则不进行调用):

close(fd);
fd = -1;
...
// More code
...
if (fd != -1) {
close(fd)
fd = -1;
}

当您需要调用 close 时,此 Code Pattern 会有所帮助来自多个地方,但您不确定该文件是否打开,或者它是否已经关闭。路过-1close是无害的(当然你会得到一个 EBADF )。

关于c - 在同一功能中对一个 fd 进行多次关闭调用是否重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12782768/

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