Çıkış kodları
- C kursu
- Orta seviye
- Ders 92/116
- 5 dk
exit ile program çıkış kodu öğrenirsin.
exit ve dönüş kodu
Bir C programı bittiğinde kabuğa bir çıkış kodu döndürür. 0 başarıyı, sıfırdan farklı değerler hatayı belirtir. İki yol vardır: main'den return ile dönmek veya <stdlib.h>'teki exit fonksiyonunu çağırmak.
exit(1) programı hemen sonlandırır; geri kalan kod çalışmaz. return 1 ise yalnızca main'den çıkar. exit, derin bir çağrı yığınından çıkmak için kullanışlıdır. EXIT_SUCCESS ve EXIT_FAILURE sabitleri 0 ve 1 yerine okunabilirlik için kullanılır. Kabuk $? ile son çıkış kodunu denetler.
Koşullu çıkış
Hata sırasında exit çağırmak, programın tutarsız duruma geçmesini engeller. Koşul sağlanınca geri kalan kodu atlamak için if bloğu içinde exit kullanılır.
Örnek: if (hata) { printf("Sorun\n"); exit(1); }. Burada hata doğruysa program bir ileti yazdırır ve hemen durur; exit'ten sonraki satırlar çalışmaz. Bu desen, dosya açma veya bellek ayırma gibi başarısız olabilecek işlemlerde yaygındır. exit, açık dosyaları kapatır ve atexit ile kaydedilen fonksiyonları çağırır; bu yüzden temiz bir sonlandırma sağlar.
Uygulama Koşullu çıkış yaz
#include <stdlib.h> ekle. int hata = 1; tanımla. printf("Başlıyor\n"); yazdır. if (hata) bloğu içinde printf("Sorun\n"); yazdır ve exit(1); çağır. if'ten sonra printf("Bitti\n"); yazdır.
Başlangıç kodu
#include <stdio.h>
#include <stdlib.h>
// hata değişkenini 1 olarak tanımla
// "Başlıyor" yazdır
// hata doğruysa "Sorun" yazdır ve programı durdur
// "Bitti" yazdır
int main(void) {
return 0;
}Örnek çözüm
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int hata = 1;
printf("Başlıyor\n");
if (hata) {
printf("Sorun\n");
exit(1);
}
printf("Bitti\n");
return 0;
}Beklenen çıktı
Başlıyor Sorun
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Çıkış kodlarını eşle
| Kavram | Anlamı |
|---|---|
0 |
Başarı |
1 |
Hata |
exit(1) |
Anında durdur |
return 0 |
main'den çık |
2 exit çağrısını tamamla
if (status != 0) exit(____);
if (status != 0) exit(1);
Açıklama: exit(1) hata durumunu kabuğa bildirir.
3 exit(1) çağrısından sonraki kod ne olur?
- Çalışmaya devam eder
- Hiç çalışmaz Doğru cevap
- Sonsuz döngüye girer
- Derleyici uyarısı verir
Açıklama: exit(1) programı hemen sonlandırır; sonraki kod çalışmaz.