(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