FILE ve fopen
- C kursu
- Orta seviye
- Ders 47/116
- 5 dk
FILE yapısını ve fopen ile dosya açmayı öğrenirsin.
FILE ve fopen
C'de bir dosyayla çalışmak için FILE* türünde bir tutamak (handle) kullanırsın. fopen fonksiyonu bir dosyayı belirli bir modda açar ve bu tutamağı döndürür.
Örnek: FILE *f = fopen("test.txt", "w");. Burada "w" yazma modudur (var olan içeriği siler). Modlar: "r" okuma, "w" yazma, "a" ekleme. fopen başarısız olursa NULL döner; bu yüzden kullanmadan önce denetlemek şarttır. Dosya işlemleri stdio.h başlığında tanımlıdır; bu yüzden #include <stdio.h> gerekir.
NULL denetimi
fopen her zaman başarılı değildir. Dosya yoksa, izin yoksa veya disk doluysa NULL döner. NULL tutamakla işlem yapmak tanımsız davranıştır; bu yüzden denetim şarttır.
Örnek desen: FILE *f = fopen("x.txt", "r"); if (f == NULL) return 1;. Bu desen, dosya açılamadığında programı güvenle sonlandırır. Üretim kodunda daha ayrıntılı hata yönetimi yapılır; ama temel desen böyledir. Her fopen için bir NULL denetimi koymak, sağlam C kodunun işaretidir.
Uygulama Dosyaya yaz ve onayla
FILE *f = fopen("test.txt", "w"); ile dosyayı yazma modunda aç. if (f == NULL) return 1; ile denetle. fprintf(f, "Merhaba\n"); ile yaz. fclose(f); ile kapat. printf("Dosya yazıldı\n"); ile ekrana onay yaz.
Başlangıç kodu
#include <stdio.h>
// fopen ile dosya aç (yazma modunda)
// fprintf ile dosyaya bir satır yaz
// fclose ile dosyayı kapat
// printf ile 'Dosya yazıldı' yazdır
int main(void) {
return 0;
}Örnek çözüm
#include <stdio.h>
int main(void) {
FILE *f = fopen("test.txt", "w");
if (f == NULL) return 1;
fprintf(f, "Merhaba\n");
fclose(f);
printf("Dosya yazıldı\n");
return 0;
}Beklenen çıktı
Dosya yazıldı
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Hangi mod dosyayı okuma için açar?
- r Doğru cevap
- a
- rw
- w
Açıklama: "r" modu dosyayı okuma için açar.
2 fopen çağrısını tamamla
FILE *f = fopen("notlar.txt", "____");
FILE *f = fopen("notlar.txt", "w");
Açıklama: "w" modu dosyayı yazma için açar.
3 Modları amacına eşle
| Kavram | Anlamı |
|---|---|
"r" |
Okuma modu |
"w" |
Yazma modu |
"a" |
Ekleme modu |
NULL |
Açma başarısız |