HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!
arat
değiştir
Kod:
void emergency_sig(int sig)
{
if (sig == SIGSEGV)
sys_log(0, "SIGNAL: SIGSEGV");
else if (sig == SIGUSR1)
sys_log(0, "SIGNAL: SIGUSR1");
if (sig == SIGSEGV)
abort();
}
değiştir
Kod:
void emergency_sig(int sig)
{
switch (sig)
{
case SIGSEGV:
fprintf(stderr, "FATAL ERROR: Segmentation Fault (SIGSEGV)\n");
fflush(stderr);
abort();
break;
case SIGBUS:
fprintf(stderr, "FATAL ERROR: Bus Error (SIGBUS)\n");
fflush(stderr);
abort();
break;
case SIGILL:
fprintf(stderr, "FATAL ERROR: Illegal Instruction (SIGILL)\n");
fflush(stderr);
abort();
break;
case SIGFPE:
fprintf(stderr, "FATAL ERROR: Floating Point Exception (SIGFPE)\n");
fflush(stderr);
abort();
break;
case SIGUSR1:
fprintf(stderr, "Received signal: SIGUSR1 (User-defined signal)\n");
fflush(stderr);
break;
default:
fprintf(stderr, "Received unknown signal: %d\n", sig);
fflush(stderr);
break;
}
}
En Çok Reaksiyon Alan Mesajlar
AÇIKLAMA :
Fonksiyonun Yaptığı İşler:
Parametre (int sig)
Gelen sinyalin numarasını alır (örneğin SIGSEGV, SIGBUS gibi).
switch-case Yapısı
Hangi sinyalin geldiğine göre farklı işlemler yapar:fflush(stderr)
SIGSEGV (Segmentation Fault)
Geçersiz bellek erişimi (null pointer, read-only alana yazma gibi) durumunda oluşur.
LOGLARA "FATAL ERROR: Segmentation Fault (SIGSEGV)" yazdırır ve programı abort() ile sonlandırır.
SIGBUS (Bus Error)
Bellek hizalamasıyla ilgili bir hata (örneğin, 4-byte'lık bir integer'ı tek byte'lık adrese yazmaya çalışmak).
"FATAL ERROR: Bus Error (SIGBUS)" yazdırır ve abort() ile çıkar.
SIGILL (Illegal Instruction)
Geçersiz CPU komutu çalıştırıldığında (bozuk binary, yetkisiz işlem).
"FATAL ERROR: Illegal Instruction (SIGILL)" yazdırıp abort() ile çıkar.
SIGFPE (Floating Point Exception)
Sıfıra bölme, taşan floating-point işlemleri gibi durumlarda.
"FATAL ERROR: Floating Point Exception (SIGFPE)" yazdırıp abort() ile çıkar.
SIGUSR1 (User-defined Signal 1)
Kullanıcı tanımlı bir sinyal (kill -USR1 <PID> ile gönderilebilir).
Sadece "Received signal: SIGUSR1 (User-defined signal)" yazdırır, programı sonlandırmaz.
Diğer Sinyaller
Tanımlanmamış bir sinyal gelirse "Received unknown signal: <sinyal_no>" yazdırır.
Hata mesajlarının hemen Syserr basılmasını sağlar (buffer'ı boşaltır).
ARKADAŞ KENDİDE BİLMEDİĞİ İÇİN AÇIKLAMA YAPAMADI HERALDE.
değiştirdiğiniz şeyin oyun içerisinde ne gibi değişiklikler yaptığını detaylıca açıklar mısınız ve eklenebliyorsa lütfen kanıt ekleyin.arat
Kod:void emergency_sig(int sig) { if (sig == SIGSEGV) sys_log(0, "SIGNAL: SIGSEGV"); else if (sig == SIGUSR1) sys_log(0, "SIGNAL: SIGUSR1"); if (sig == SIGSEGV) abort(); }
değiştir
Kod:void emergency_sig(int sig) { switch (sig) { case SIGSEGV: fprintf(stderr, "FATAL ERROR: Segmentation Fault (SIGSEGV)\n"); fflush(stderr); abort(); break; case SIGBUS: fprintf(stderr, "FATAL ERROR: Bus Error (SIGBUS)\n"); fflush(stderr); abort(); break; case SIGILL: fprintf(stderr, "FATAL ERROR: Illegal Instruction (SIGILL)\n"); fflush(stderr); abort(); break; case SIGFPE: fprintf(stderr, "FATAL ERROR: Floating Point Exception (SIGFPE)\n"); fflush(stderr); abort(); break; case SIGUSR1: fprintf(stderr, "Received signal: SIGUSR1 (User-defined signal)\n"); fflush(stderr); break; default: fprintf(stderr, "Received unknown signal: %d\n", sig); fflush(stderr); break; } }
oyun içi değil oyun dışıdeğiştirdiğiniz şeyin oyun içerisinde ne gibi değişiklikler yaptığını detaylıca açıklar mısınız ve eklenebliyorsa lütfen kanıt ekleyin.
neden olmasın ki kanka yhaaaaneden
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 37
- Görüntüleme
- 2K
- Cevaplar
- 31
- Görüntüleme
- 7K
- Cevaplar
- 8
- Görüntüleme
- 2K
- Cevaplar
- 14
- Görüntüleme
- 3K
