(toppers-users 1759) Re: syslog 機能について
Hiroshi Morita
morita @ adac.co.jp
2004年 11月 8日 (月) 18:12:39 JST
高田先生、
森田です。
hiro>森田さん、邑中さん、皆様
hiro>
hiro>> この件は、FI4の、というよりはJSPの比重が高い話題ですね。
hiro>>
hiro>> On 2004/10/29, at 16:21, Hiroshi Morita wrote:
hiro>> > syslog(....) はいろいろなところで使っていると思いますので
hiro>> > これらを#ifndef OMIT_SYSLOG〜#endifでくくるのではなく
hiro>> >
hiro>> > #ifdef OMIT_SYSLOG
hiro>> > #define syslog()
hiro>> > #endif
hiro>> >
hiro>> > として、syslog(....)の部分のコードを全てなしにする方法がよいと
hiro>> > 思います。
hiro>>
hiro>> 私も、この方法が良いと思います。こう解決したという事実を
hiro>> 知らないと、コードレベルデバッグのときに少し驚くかも
hiro>> しれませんけれども。
hiro>
hiro>上の方法で良ければすでにやっていたと思うのですが、ダメなのです。試して
hiro>みるとすぐにわかりますが、「#define syslog()」だと、syslog(...) が展開
hiro>できません。GCC の拡張を使えばできるのですが。
hiro>
hiro>ということで、良いアイデア募集。
hiro>
確認不足でした。
syslog(....)は可変個引数を持つ関数なので、マクロでの処理は
コンパイラ依存になってしまいますね。
高木さんのに続けて、
1. GCCの拡張機能またはC99の可変個引数マクロを使用する。
未対応の場合には、
2. syslog(....){} の空関数を定義する。
引数の設定と関数呼び出しとリターンの無駄なコードが出るのですが
3. syslog_0 .. syslog_n があるので、syslog をやめてしまう
ソースの書き直しが面倒ですが、2の無駄なコードがなくなるのは良い
----------------------------------------------------------------------
(株)アドバンスドデータコントロールズ
技術本部 OS開発部 森田 浩
〒170-0004 東京都豊島区北大塚1−13−4 日本生命大塚ビル
(TEL)03-5394-8145 (FAX)03-3576-1772
(E-Mail) morita @ adac.co.jp (URL)http://www.adac.co.jp