gpt4 book ai didi

C:在 if 条件下调用 close()

转载 作者:行者123 更新时间:2023-12-02 02:22:39 24 4
gpt4 key购买 nike

一般来说,

我读了很多代码,它们总是使用以下代码片段来检查关闭 fd 是否成功

// code A
int result = close(some_fd);
if ( result == -1)
perror("close error");

我想简化上面的代码

//code B
if ( close(some_fd) == -1 )
perror("close error");

上面的代码片段可以执行,如果有错误,

那么“关闭错误”也可以正常显示。

AFAIK,if(条件),其中条件将是r值

所以这应该意味着( close(some_fd) == -1 )只是临时

当我在if条件中调用它时,Dose close(some_fd)真的正常执行吗?

最佳答案

您可以在 if 内安全地调用 close。

事实上,当你说右值是临时的时,你是对的,因为它代表一个存储在临时内存地址中的值,只是用来分配给左值。

但是,在您的情况下,它“临时”存储的是整个条件值,这意味着 close(fd) 函数的返回值与 -1 相比。因此,close将按预期执行,并且其效果不是暂时的。

关于C:在 if 条件下调用 close(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66180412/

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