UNIXプログラミング質問すれ Part9
■ このスレッドは過去ログ倉庫に格納されています
0672デフォルトの名無しさん
2010/01/04(月) 22:43:52do ; while (0); をマクロ以外で使うのはきもいとか言われるかもしれんが
do {
fp0 = fp1 = NULL;
if (! (fp0 = fopen(...)) ) break ;
if (! (fp1 = fopen(...)) ) break ;
// ...
} while (0);
// さらにきもく
#define ffree(fp) (fp ? fclose(fp) : 0)
ffree(fp0);
ffree(fp1);
fp0 = fp1 = NULL;
趣旨からずれるけど >>619 って errno 保存しておかないと warn が最後のエラーを他のファイルのエラーとして報告しちゃうような。
perror 系は原因のすぐ近くで使うほうがいいかも。それはそうと僕は断然 goto ですねえ。
if (! (fp0 = fopen(...)) ) goto L0;
if (! (fp1 = fopen(...)) ) goto L1;
// ...
fclose(fp1);
L1:
fclose(fp0);
L0:
ながながとすまん
■ このスレッドは過去ログ倉庫に格納されています