Milletler, Linux için syslog() 'ın yeniden giriş sürümünü bulamıyorum ... var mı? Ve hayırsa, sen ne yapıyorsun? Belirgin yanıt, günlük kaydı hizmetini ayrı iş parçacığına ve syslog'a serileştirme erişimine taşımaktır ...syslog_r?
cevap
POSIX specification'a göre, syslog işlevi zaten iş parçacığı güvenlidir ve Linux'ta uygulanır. Yani syslog_r gereksizdir - bir reentrant logger işlevine ihtiyacınız varsa syslog kullanın.
BSD'ler bir syslog_r çağrısı tanımlar, ancak tamamen farklı bir sebepten dolayı; bireysel iş parçacıkları farklı syslog seçenekleriyle oturum açmak isteyebilir, bu da mümkün değildir. –
Doğru - bu işlev Linux'ta mevcut değildir. –
[bu sayfa] (http://pic.dhe.ibm.com/infocenter/aix/v6r1/index.jsp?topic=%2Fcom.ibm.aix.basetechref%2Fdoc%2Fbasetrf2%2Fsyslog.htm) şunu söylüyor iş parçacığı güvenli değil –
Syslog çağrıları bir semafor/muteks ile korunmuyor mu? Yapmak istediğiniz şeyleri ayrıntılandırabiliyorsanız ve kendinizin önerdiğiniz çözümün neden kabul edilemez olduğunu düşünürsek, insanlar size daha iyi yardımcı olacaktır. –