Dosya işlemleri, programların verileri disk üzerinde okumasına, yazmasına ve düzenlemesine olanak tanır. Bu, programların kalıcı veri depolama, veri alışverişi ve daha karmaşık işlemler için dosyalarla etkileşimde bulunmasını sağlar. Bu yazıda, C programlama dilinde dosya işlemleri konusunu açıklayacak ve bazı örneklerle kullanımını göstereceğiz.
Dosya İşlemlerine Giriş
Dosya işlemleri, programların verileri disk üzerinde okumasına, yazmasına ve düzenlemesine olanak tanır. Bu, programların kalıcı veri depolama, veri alışverişi ve daha karmaşık işlemler için dosyalarla etkileşimde bulunmasını sağlar. Bu makalede, C programlama dilinde dosya işlemlerini açıklayacak ve bazı örneklerle kullanımını göstereceğiz.
C Programlama Dilinde Dosya Oluşturma
Dosya oluşturmak için fopen()
işlevini kullanırız. İşlev, dosya adını ve dosya erişim modunu alır. Dosya erişim modu, dosyanın hangi amaçla açılacağını belirler (okuma, yazma, ekleme vb.).
Örnek olarak, aşağıdaki C programı bir dosya oluşturur:
#include <stdio.h>
int main() {
FILE *dosya;
dosya = fopen("dosya.txt", "w");
if (dosya == NULL) {
printf("Dosya oluşturma hatası!");
return 1;
}
printf("Dosya oluşturuldu: dosya.txt\n");
fclose(dosya);
return 0;
}
Bu örnek, dosya oluşturmanın temel bir örneğini göstermektedir. “w” erişim modu kullanılarak dosya oluşturulur. Eğer belirtilen isimde bir dosya zaten mevcutsa, bu işlem mevcut dosyanın içeriğini silecektir. Dosya oluşturulduktan sonra, içeriği yazılmadan önce başka işlemler yapabilirsiniz.
C Programlama Dilinde Dosya Açma ve Kapatma
C programında bir dosyaya erişmek için öncelikle dosyanın açılması gerekmektedir. Dosya açma işlemi fopen() işlevi kullanılarak yapılır. İşlev, dosya adı ve dosya erişim modu gibi parametreler alır. Dosya erişim modu, dosyanın okuma, yazma veya eklemeye açık olup olmadığını belirler. Örneğin, “r” modu dosyanın okunabilir olduğunu, “w” modu dosyaya yazılabileceğini, “a” modu ise dosyaya eklenebileceğini belirtir. Dosya işlemleri tamamlandıktan sonra fclose() işlevi kullanılarak dosya kapatılır.
Örnek Kullanım :
#include <stdio.h>
int main() {
FILE *dosya;
char metin[100];
dosya = fopen("metin.txt", "w"); // Dosyayı yazma modunda aç
if (dosya == NULL) {
printf("Dosya oluşturma hatası!");
return 1;
}
printf("Metni girin: ");
fgets(metin, sizeof(metin), stdin);
fprintf(dosya, "%s", metin);
fclose(dosya);
dosya = fopen("metin.txt", "r"); // Dosyayı okuma modunda aç
if (dosya == NULL) {
printf("Dosya açma hatası!");
return 1;
}
printf("Dosya İçeriği:\n");
while (fgets(metin, sizeof(metin), dosya) != NULL) {
printf("%s", metin);
}
fclose(dosya);
return 0;
}
Yukarıdaki örnek, “metin.txt” adlı bir dosya oluşturur ve kullanıcıdan bir metin alarak bu dosyaya yazar. Ardından dosyayı tekrar açar ve içeriğini ekrana yazdırır. İlk olarak, dosya “w” modunda açılır ve fprintf() işlevi kullanılarak metin dosyaya yazılır. Daha sonra, dosya “r” modunda tekrar açılır ve fgets() işlevi kullanılarak dosya içeriği okunur ve ekrana yazdırılır. Son olarak, dosya kapatılır.
C Programlama Dilinde Dosya Okuma
Dosya okuma işlemi için fopen()
işlevi ile dosyayı açar ve fscanf()
veya fgets()
gibi işlevleri kullanarak dosyadan veri okuruz.
#include <stdio.h>
int main() {
FILE *dosya;
char karakter;
dosya = fopen("dosya.txt", "r");
if (dosya == NULL) {
printf("Dosya açma hatası!");
return 1;
}
printf("Dosya İçeriği:\n");
while ((karakter = fgetc(dosya)) != EOF) {
printf("%c", karakter);
}
fclose(dosya);
return 0;
}
Yukarıdaki programda, fopen()
işlevi kullanılarak “dosya.txt” adlı bir dosya okuma modunda açılır. Eğer dosya açma işlemi başarısız olursa, fopen()
işlevi NULL
değeri döndürür. Bu durumda, program bir hata mesajı yazdırır ve çıkış yapar. Dosya açıldığında ise, dosyanın içeriği fgetc()
işleviyle karakter karakter okunur ve ekrana yazdırılır. Okuma işlemi dosya sonuna kadar devam eder (EOF
– End of File değeri ile karşılaşılana kadar). Son olarak, dosya fclose()
işlevi ile kapatılır.
C Programlama Dilinde Dosya Silme
C programlama dilinde bir dosyayı silmek için remove()
işlevini kullanırız. remove()
işlevi, parametre olarak silinecek dosyanın adını alır ve dosyayı diskten kalıcı olarak siler.
#include <stdio.h>
int main() {
char dosyaAdi[100];
printf("Silinecek dosyanın adını girin: ");
scanf("%s", dosyaAdi);
if (remove(dosyaAdi) == 0) {
printf("%s dosyası silindi.\n", dosyaAdi);
} else {
printf("Dosya silme hatası!\n");
}
return 0;
}
Yukarıdaki program, kullanıcıdan silinecek dosyanın adını alır. remove()
işlevi, girilen dosya adını kullanarak dosyayı siler. Eğer dosya başarıyla silinirse, program bir mesaj yazdırır. Eğer dosya silme işlemi başarısız olursa, bir hata mesajı görüntülenir.
Bu yazımızda, C programlama dilinde dosya işlemleri konusu açıkladık. Diğer C programlama dili derslerimizi okumak isterseniz buradan tümüne ulaşabilirsiniz.