Yerel Olmayan Çıkışlarda Sinyaller
Önceki XXIII. Oylum - Yerel Olmayan Çıkışlar Sonraki
Yerel Olmayan Çıkışlarda Sinyaller
BSD Unix sistemlerinde, setjmp ve longjmp işlevleri engellenen sinyalleri kaydedebilir ve daha sonra onları eski durumuna getirebilir. Ancak, POSIX.1 standardı setjmp ve longjmp gerçeklemesinin engellenen sinyalleri değiştirmemesini gerektirir ve BSD davranışını elde etmek için ek bir işlev çifti (sigsetjmp ve siglongjmp) sağlar.
setjmp ve longjmp işlevlerinin davranışı GNU C kütüphanesinde özellik sınama makroları ile denetlenir. GNU sisteminde öntanımlı olan BSD davranışı değil POSIX.1 davranışıdır.
Bu kısımdaki oluşumlar setjmp.h başlık dosyasında bildirilmiştir.
sigjmp_buf
veri türü
Bu veri türü, ayrıca engellenen sinyallerin durum bilgilerinin de kaydedilmesini sağlaması dışında jmp_buf'a benzer.
int sigsetjmp
(sigjmp_buf durum,
 int        sinyal_kaydet)
işlev
setjmp işlevine benzer. Eğer sinyal_kaydet argümanının değeri sıfırdan farklıysa, engellenen sinyaller daha sonraki bir siglongjmp çağrısı ile yerine konmak üzere durum nesnesine kaydedilir.
void siglongjmp
(sigjmp_buf durum,
 int        değer)
işlev
durum argümanının türü dışında longjmp işlevine benzer. Eğer sigsetjmp çağrısında sıfırdan farklı bir sinyal_kaydet argümanı belirtilerek engellenen sinyaller bu durum nesnesine kaydedilmişse, bu çağrı ayrıca onları da eski durumlarına getirir.
Önceki Üst Ana Başlık Sonraki
Yerel Olmayan Çıkışların Ayrıntıları Başlangıç Bütünsel Bağlam Denetimi
Bir Linux Kitaplığı Sayfası