SORU
7 Kasım 2009, CUMARTESİ


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
7 Kasım 2009, CUMARTESİ


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Angry Paintballer

    Angry Paintb

    8 Ocak 2012
  • Skittles Page

    Skittles Pag

    28 Mart 2011
  • THE RED DRAGON

    THE RED DRAG

    6 ŞUBAT 2009