Bir hata oluştuğunu güvenli iş parçacığı?
errno.h
, bu değişken ilan edilir extern int errno;
yani benim soru, güvenli kontrol errno
değer sonra bazı aramaları veya kullanım perror() çok iş parçacıklı kod. Bu iş parçacığı güvenli bir değişkendir? O zaman alternatif nedir ?
X 86 mimarisi üzerinde gcc ile linux kullanıyorum.
CEVAP
Evet, parçacığı güvenlidir. Linux üzerinde, genel bir hata oluştuğunu değişken iplik özgüdür. POSIX bir hata oluştuğunu iş parçacığı için güvenli olması gerekir.
http://www.unix.org/whitepapers/reentrant.html bkz
POSIX.1, hata olarak tanımlanır dış küresel değişken. Bu ama tanım olarak kabul edilemez onun yüzünden çok iş parçacıklı ortamda kullanımı belirli olmayan neden olabilir sonuçları. Bu sorun, iki ya da daha fazla iş parçacığı, hata, tüm karşılaşma olabilir aynı neden ayarlamak için hata. Bu şartlar altında, bir iplik bundan sonra hata denetimi sonunda olabilir zaten başka bir tarafından güncellenmiştir iplik.
Sonuç atlatmak için nondeterminism, POSIX.1c yeniden tanımlıyor erişebileceği bir hizmet olarak hata bu başına iş parçacığı aşağıdaki gibi hata numarası (9945:1-1996, §2.4)IEC ISO/:
Bazı fonksiyonları bir değişkeni erişilen hata numarasını verebilir sembol hata ile. Sembol bir hata oluştuğunu da dahil olmak üzere tanımlanır belirtildiği gibi başlık , C Standart ... ... her iş İçin işlem, hata değeri olmayacaktır işlev çağrıları tarafından etkilenen ya başka bir iş parçacığı tarafından bir hata oluştuğunu atamaları.
Ayrıca http://linux.die.net/man/3/errno bkz
bir hata oluştuğunu konu yerel; bir iplik ayarı başka bir iş parçacığı değerini etkilemez.
PHP parçacığı güvenli olmayan güvenli ...
C# statik yapıcı iş parçacığı güvenli?...
= ! iş parçacığı güvenli onay?...
&; Güvenli olmayan JavaScript URL ile ...
Visual Studio tek bir iş parçacığı, ha...