gpt4 book ai didi

c - 如何在代码块中设计或避免多个函数返回检查

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

在我的代码中很多时候我都有这样的 block :

close(READ);
dup(fd[READ]);
close(fd[READ]);
execl("ay", "bee", NULL);

我怎样才能避免一堆

if (close(READ) == -1) {
perror("close");
exit(EXIT_FAILURE);
}
...repeat for each function...

或者处理这个问题的好做法是什么?

我试过这样的:

void test_returns(int result, char * err) {
if (result == -1) {
perror(err);
exit(EXIT_FAILURE);
}
}

/* code */
test_returns(close(READ), "close");
test_returns(dup(fd[READ]), "dup");
test_returns(close(fd[READ]), "close");
test_returns(execl("ay", "bee", NULL), "execl");

但我认为这不是解决问题的好方法。对此有什么好的解决方案?

最佳答案

到目前为止,这个问题的最佳解决方案是在这里偶然遇到的:http://c.learncodethehardway.org/book/learn-c-the-hard-waych21.html#x26-10500021

我认为其他答案中建议的每个函数的宏要清晰得多。也许有人有更好的解决方案,但现在这就是我要使用的。

关于c - 如何在代码块中设计或避免多个函数返回检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10146046/

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