Bu makalede, dosya okuma işlemlerinde kullanılan temel fonksiyonları öğreneceksiniz C programlama dilinde belirli dosya okuma fonksiyonları kullanarak dosyaları açma, okuma ve kapatma işlemlerini gerçekleştirebilirsiniz Detaylı bilgi için makalemizi okumaya devam edin!

Dosya işlemleri, programcıların sık sık kullanmaları gereken işlemlerden biridir. Dosyalar, programların kaynakları veya çıkışları olarak kullanılabilirler. Dosya okuma işlemleri, bir dosyadan veri okunması veya dosyadaki verilerin analizi için gereklidir. Bu nedenle, programcıların dosya okuma işlemleri hakkında bilgi sahibi olmaları önemlidir.
Bu makalede, dosya okuma işlemlerinin temel fonksiyonları hakkında bilgi verilecektir. Dosya okuma işlemi yapmak için, ilk olarak dosya açma fonksiyonu olan fopen() kullanılır. Daha sonra, fgetc() fonksiyonu dosyadan tek bir karakter okumak için kullanılır. Feof() fonksiyonu, dosyanın sonuna gelinip gelinmediğini kontrol etmek için kullanılır.
Dosyadan belirli bir boyutta veri okumak için fread() fonksiyonu ve dosyadan bir satır okumak için fgets() fonksiyonu kullanılır. Dosyadaki okuma konumunu başa döndürmek için rewind() fonksiyonu kullanılır. Dosya okuma işlemi tamamlandıktan sonra, dosyanın kapatılması için fclose() fonksiyonu kullanılır.
Tablo ve listeden yararlanarak dosya işlemleri hakkında farklı fonksiyonları inceleyebilirsiniz. Bu temel fonksiyonlar, programcıların dosya okuma işlemlerini gerçekleştirebilmeleri için yeterlidir. Ayrıca, bu fonksiyonların kullanılması hataların önlenmesi ve programların daha verimli çalışması için gereklidir.
fopen()
Dosya okuma işlemi yapmak için, öncelikle dosyanın açılması gerekiyor. Bu iş için kullanılan temel fonksiyon ise fopen() fonksiyonudur. fopen() fonksiyonu, belirtilen dosya adını açar ve bu dosyayı okumak için kullanılabilir hale getirir. Dosya açma işlemi sırasında, dosya adı ve açma modu parametre olarak verilir. Açma modu, dosyanın nasıl açılacağını belirler.
fopen() fonksiyonu, iki parametre alır. İlk parametre, açılacak dosyanın adıdır. İkinci parametre, dosyanın açma modudur. Dosyayı okumak için, "r" veya "rt" açma modları kullanılır. "r" modu, dosyanın metin olarak açılmasını, "rt" modu ise dosyanın ikili olarak açılmasını sağlar.
Bazı örnekler vermek gerekirse, aşağıdaki kod satırları dosya açma işlemini gerçekleştirir:
FILE *fp; fp = fopen("dosya.txt", "r");
Bu kod satırları, "dosya.txt" adlı dosyayı okumak için açar. Dosya okuma işlemi tamamlandıktan sonra, dosyanın kapatılması unutulmamalıdır. Bunun için ise fclose() fonksiyonu kullanılır.
fgetc()
Dosya okuma işlemlerinde kullanılan temel fonksiyonlardan biri olan fgetc() fonksiyonu, dosyadan tek bir karakter okumak için kullanılır.
Bu fonksiyon, belirtilen dosya göstericisiyle açılmış bir dosyadan tek bir karakter okur ve okunan karakteri bir tamsayı olarak geri döndürür. Eğer fonksiyonun okuyacak bir karakteri kalmamışsa EOF (-1) değeri geri döndürülür.
Bir örnek vermek gerekirse, aşağıdaki kod satırları bir dosyadan karakter okumak için kullanılabilir:
|
Bu örnekte, dosya.txt adlı bir dosya açılır ve NULL değeri döndürülmezse while döngüsü içinde karakterler tek tek okunur ve ekrana yazılır. Daha sonra dosya kapatılır.
fgetc() fonksiyonu, dosyadan sadece tek bir karakter okuduğu için büyük dosyaların okunmasında yavaş kalabilir. Bu durumda, fread() fonksiyonu kullanılarak belirli bir boyutta veri okunması daha hızlı sonuç verebilir.
feof()
Dosya okuma işlemlerinde, dosyanın sonuna gelinip gelinmediğini kontrol etmek için feof() fonksiyonu kullanılır. Bu fonksiyon, dosyanın sonuna gelindiğinde true değerini döndürür.
Dosyadan veri okuma işlemi yaparken, feof() fonksiyonunun ne zaman kullanılması gerektiği önemlidir. Bu fonksiyon, dosyanın sonuna gelip gelmediğini kontrol ederek, sonsuz bir döngüye girmeyi önler. Örneğin, while döngüsü içinde feof() fonksiyonu kullanarak dosyadan veri okunabilir.
Aşağıdaki örnekte, feof() fonksiyonu kullanılarak dosyadan veri okunmaktadır:
FILE *dosya; dosya = fopen("dosya.txt", "r"); while(!feof(dosya)) { char karakter = fgetc(dosya); printf("%c", karakter); } fclose(dosya); |
Yukarıdaki örnekte, dosya.txt dosyası okunarak, feof() fonksiyonu ile dosya sonuna kadar okuma işlemi gerçekleştirilir. while döngüsü içinde, feof() fonksiyonunun değeri false olana kadar dosyadan karakter okunur ve ekrana yazdırılır. Daha sonra, dosya kapatılır.
Dosya okuma işlemlerinde, feof() fonksiyonunun kullanımı, programın doğru çalışması için oldukça önemlidir. Bu nedenle, dosya okuma işlemleri sırasında feof() fonksiyonunun kullanımına dikkat edilmelidir.
fread()
Bir dosyadan belirli bir boyutta veri okumak için kullanılan fread() fonksiyonu, C dilinde yaygın bir işlemdir. Bu işlem, dosyanın okunabilmesi için önce dosyanın açılması gerekmektedir. Daha sonra dosyadan veri okunacak boyut belirlenir. Bu boyut, okunacak verinin tamamını ya da sadece bir kısmını içerebilir.
fread() fonksiyonu ile belirli bir boyutta okuma yapılır ve bir dizi içine aktarılır. Bu dizi, işlem sonucunda kullanılabilen bir veri deposu haline gelir. Bu veri, önceden belirlenen boyutta olabilir ve diziye sığdırılması gerekebilir.
Özellikle veri tabanları ya da büyük dosyaların okunması durumunda büyük önem taşıyan fread() fonksiyonu, diğer dosya okuma fonksiyonlarına göre daha fazla işlemci kullanarak hızlı okuma işlemi gerçekleştirebilir.
Parametre | Açıklama |
---|---|
eleman boyutu | Okunacak tek bir elemanın boyutunu belirler |
eleman sayısı | Okunacak elemanların sayısını belirler |
dosya işaretçisi | Okuma işleminin başlayacağı noktayı belirler |
fgets()
Dosyadan bir satır okumak, bazı durumlarda tek bir karakter okumaktan daha fazla bilgi sahibi olmayı gerektirir. Bu nedenle, bir dosyadan satır okumak için fgets() fonksiyonu kullanılır. Bu işlemi gerçekleştirmek için, okunacak satırın uzunluğunu ve dosyanın adını içeren iki parametre gereklidir. fgets() fonksiyonu, dosyanın sonuna gelindiğinde NULL değeri döndürür.
fgets() fonksiyonu, dosyadan bir satır okumak için sıkça kullanılan bir fonksiyondur. Okunacak satırın uzunluğu bilinmediğinde kullanışlıdır çünkü dosyanın sonuna kadar okur. Ayrıca, okunan satırlar karakter dizileri olarak saklandığı için, daha sonra işleme almak istediğimiz tüm verileri aynı zamanda bir diziye de yükleyebiliriz.
rewind()
Dosya okuma işlemleri sırasında bazen dosyanın başından başlamak gerekebilir. Bu ihtiyacı karşılamak için, rewind() fonksiyonu kullanılır. Bu fonksiyon, okuma işlemi yapılan dosyadaki okuma konumunu dosyanın başına döndürür.
Rewind() fonksiyonu, genellikle dosyanın içinde arama yapılması gerektiğinde kullanılır. Dosyanın sonuna gelindiğinde ya da bir önceki okuma işleminden sonra dosya okuma konumu son karakterde kalmış olabilir. İşlem tekrar başlayacağında, dosyanın başından başlamak gereklidir. Rewind() fonksiyonu, bu işlemi yaparak dosyanın başından yeniden başlamamızı sağlar.
Kodda kullanımı oldukça basittir. Dosya açma işlemi yapıldıktan sonra, okuma işlemi yapılırken kullanacağımız fonksiyonlar çağrılır. Dosyanın başına dönmek istediğimizde ise rewind() fonksiyonu çağrılır ve işlem tamamlanır.
Aşağıdaki örnek kodda, dosya okuma işleminin başarılı bir şekilde gerçekleştirilmesi için rewind() fonksiyonu kullanılmıştır:
```C#include
fp = fopen("ornek.txt","r"); if(fp == NULL) { perror("Dosya açma hatası"); return; } c = fgetc(fp); printf("%c", c);
rewind(fp); //Dosyanın başına dön c = fgetc(fp); printf("%c", c); fclose(fp);}```
Yukarıdaki kodda, öncelikle dosya açma işlemi gerçekleştirilir. Daha sonra fgetc() fonksiyonu kullanılarak dosyadan bir karakter okunur ve ekrana yazdırılır. Dosyanın başına dönmek için ise rewind() fonksiyonu kullanılır. Son olarak fgetc() fonksiyonu bir kez daha çağrılır ve dosyanın başındaki karakter okunarak ekrana yazdırılır.
Rewind() fonksiyonunun kullanımı oldukça basittir ve dosya okuma işlemlerinde sıklıkla kullanılır. Dosyanın içinde arama yapmak, veri okumak veya dosyadan veri atmak için bu fonksiyonu kullanabilirsiniz.
fclose()
Bir dosyayı açmak ve okumak için gerekli olan fonksiyonlar çağrıldıktan sonra, dosyanın açık kalması gerektiği süre boyunca bellek kullanır. Bu nedenle, dosya okuma işlemi tamamlandığında, dosyanın kapatılması gerekir. Bu amaçla, fclose() fonksiyonu kullanılır.
fclose() fonksiyonu, kullanılan dosyayı kapatır ve bellekte kullanılan tüm kaynakları serbest bırakır. fclose() fonksiyonu çağrılmadığı takdirde, dosya bellekte açık kalır ve bu durum belleğin dolmasına neden olabilir.
Bu nedenle, dosyanın kullanımı tamamlandıktan sonra, fclose() fonksiyonu mutlaka çağrılmalıdır. Dosyanın kapatılması, bellek kullanımını önler ve aynı zamanda dosya üzerindeki değişiklikleri kaydeder. Bu fonksiyon sayesinde, dosyaların veri kaybı riski azaltılır.