ちょっとしたツールを作っている。
そのツールでは、自分が作った他のライブラリを使っている。
いま、そのライブラリはデバッグ中で、stderrにログをいろいろ吐き出している。
作っているツールではそのライブラリを何度も呼び出すため、おびただしいログが出てしまい、困っている。
やりたいのは、こう。
- 自分のところはエラー出力させたい
- ライブラリはエラー出力させたくない
考えたのは、ファイルディスクリプタ2を別の番号にしてしまおう、というもの。
2の方をcloseして、自分のコマンドは別の番号の方に出力させればよいはず。
int fd_err = dup(2);
FILE *fp_err = fdopen(fd_err, "w");
close(2);
fprintf(stderr, "ERR LOG\n");
fprintf(fp_err, "err log\n");
よしよし。
fdopen()で"r"と書いていて10分ほど悩んでいたのは秘密だ。。。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。