Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /var/www/vhosts/bilgigunlugum.net/httpdocs/index.php on line 43
C Programlama

BG MVC Model View Controller eğitim serisi yayında...

Ana sayfa > Programlama > C Programlama > C standart kütüphanesi > <signal.h> > raise

raise() fonksiyonu

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.