Bildirim
int raise(int sig);
Açıklama
Programa sig parametresi ile gösterilen sinyali gönderir. Daha önce signal fonksiyonu ile tanımlanan sinyal fonksiyonu devreye girer.
Parametreler
sig: Bir önceki setjmp() fonksiyon çağrısı ile doldurulan ve ortamı o noktaya geri yüklemek için bilgi içeren jmp_buf değişken değeridir.
SIGINT Genellikle uygulama kullanıcısı tarafından üretilen etkileşimli dikkat sinyali. SIGILL Geçersiz talimat gibi geçersiz fonksiyon çalışması. Bu genellikle koddaki bozulmalardan veya veri kullanma denemelerinden kaynaklanır. SIGFPE Hatalı aritmetik işlem. SIGSEGV Veri depolama birimine geçersiz erişim. SIGTERM Programa gönderilen sonlandırma isteği. SIGBREAK Ctrl-C işlemi. SIGABRT Anormal sonlandırma.
Dönüş değeri
Eğer fonksiyon başarılı bir şekilde çalışırsa 0 değeri, aksi takdirde sıfır olmayan bir değer geri döndürülür.
Örnek
#include <stdio.h>
#include <signal.h>
sig_atomic_t SignalStat;
void signal_func(int signal);
int main (void) {
signal(SIGFPE, signal_func);
printf("Sinyal değeri: %d\n", SignalStat);
printf("Sinyal gönderme: %d\n", SIGFPE); /* Float değer hatası */
raise(SIGFPE);
printf("Sinyal değeri: %d", SignalStat);
return 0;
}
void signal_func(int signal)
{
SignalStat = signal;
}
Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar:
Sinyal değeri: 0 Sinyal gönderme: 8 Sinyal değeri: 8
Yukarıdaki program, önce signal() fonksiyonu ile SIGFPE sinyal işareti için signal_func() hata işleyicisini ayarlar. Sonra, raise() fonksiyonu programa SIGFPE sinyali gönderir.