私のコードには多くの場合、次のようなブロックがあります。
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");
しかし、これは良い方法ではないと思います。これに対する良い解決策は何ですか?