2009-07-22 41 views
11

皆さん、Linux用のsyslog()のリエントラント版が見つかりません...ありますか?もしそうでなければ、あなたは何ですか?明白な答えは、別のスレッドにロギング機能を移動し、syslogへのアクセスをシリアライズすることです。Linuxの場合はsyslog_r?

+0

セマフォ/ミューテックスを使用してsyslog呼び出しを保護することはあまり明白ではありませんか?自分が何をしたいのかを具体的に説明できる場合、自分が提案する解決策が受け入れられない理由があれば、人々はあなたをより良く助けることができます。 –

答えて

17

POSIX specificationによれば、syslog関数はすでにスレッドセーフであり、Linuxで実装されています。したがって、syslog_rは不要です。リエントラントロガー機能が必要な場合は、syslogを使用してください。

+5

ただし、BSDは全く異なる理由でsyslog_r呼び出しを定義します。個々のスレッドは別のsyslogオプションでログを記録することができますが、これは他には可能ではありません。 –

+0

権利 - その機能はLinuxでは利用できません。 –

+0

[このページ](http://pic.dhe.ibm.com/infocenter/aix/v6r1/index.jsp?topic=%2Fcom.ibm.aix.basetechref%2Fdoc%2Fbasetrf2%2Fsyslog.htm)は、スレッドセーフではありません –

関連する問題