Bu makalede, dosya işlemleri için temel fonksiyonlar ve bunların kullanımı incelenmektedir Dosya işlemlerinin başlaması için dosyanın açılması gereklidir ve bunun için fopen fonksiyonu kullanılır Dosya işlemleri tamamlandıktan sonra, dosyanın kapatılması gerekir ve bunun için fclose fonksiyonu kullanılır Veri yazma işlemleri için fwrite, fputc, fputs ve fprintf fonksiyonları kullanılabilirken, veri okuma işlemleri için fgets, fread ve fscanf fonksiyonları kullanılabilir En çok kullanılan dosya açma ve kapatma fonksiyonları ise, C dilinde fopen ve fclose fonksiyonlarıdır Dosyaya veri yazarken dikkat edilmesi gereken önemli bir konu, yazılacak verinin uzunluğudur ve fwrite fonksiyonunun kullanımı sırasında verinin uzunluğu ve dosya işaretçisi konumu doğru bir şekilde belirlenmelidir

Dosya işlemleri, herhangi bir programlama dilinde oldukça önemli bir konudur ve programlama dillerinde kullanılan dosya işlemleri için farklı fonksiyonlar bulunmaktadır. Bu makalede, dosya yazma işlemlerinde kullanılan temel fonksiyonlar incelenecek ve bu fonksiyonların ne işe yaradığı hakkında detaylı bilgiler verilecektir.
Dosya işlemlerine başlamak için, dosyayı açmak gerekmektedir. Dosya açma işlemi, fopen() fonksiyonu kullanılarak gerçekleştirilir. İşlem bitince ise dosyanın kapatılması gerekir. Dosya kapatma işlemi, fclose() fonksiyonu ile gerçekleştirilir.
Dosyaya veri yazma işlemi, farklı fonksiyonlar kullanılarak gerçekleştirilebilir. En çok kullanılan fonksiyonlar ise fwrite(), fputc() ve fputs() fonksiyonlarıdır. fwrite() fonksiyonu, belirli bir uzunluktaki verileri dosyaya yazmak için kullanılırken, fputc() fonksiyonu karakter bazlı işlemler için idealdir. fputs() fonksiyonu ise, dosyaya bir kelime veya cümle yazmak için kullanılır. Bunların yanında, dosyaya formatlı veri yazmak için fprintf() fonksiyonu da kullanılabilir.
Dosyadan veri okuma işlemi de, farklı fonksiyonlar kullanılarak gerçekleştirilir. Yine en çok kullanılan fonksiyonlar fgets() ve fread() fonksiyonlarıdır. fgets() fonksiyonu, dosyadan bir satır okumak için kullanılırken, fread() fonksiyonu belirli bir uzunluktaki verileri okumak için kullanılır. Bu fonksiyonların yanı sıra, dosyadan okunan verileri formatlı bir şekilde okumak için fscanf() fonksiyonu da kullanılabilir.
Dosya Açma ve Kapatma Fonksiyonları
Dosya işlemlerine başlamak için ilk önce dosya açılması gereklidir. Dosya açmak için farklı fonksiyonlar kullanılabilir. Bu fonksiyonlar dosya açarken hangi amaca hizmet edeceği değişebilir. Örneğin, sadece okuma için dosya açmak, sadece yazma için dosya açmak ya da hem okuma hem de yazma için dosya açmak gibi.
Dosya açma işlemi tamamlandıktan sonra, dosya işlemleri bitince dosya kapatma fonksiyonları kullanılır. Bu fonksiyonlar, dosya belleğinde açık bir şekilde tutulmadan, dosya işlemleri kapatılarak belleğin boşaltılmasını sağlar. Dosya kapatma işlemi yapılmadan önce, dosya işlemleri tamamlanana kadar aynı dosyadan okuma ya da yazma işlemi yapılamaz.
Yukarıda açıklanan dosya açma ve kapatma fonksiyonlarının kullanımı, programlama dillerinde değişebilir. Örneğin, C dilinde dosyaları açmak için fopen() fonksiyonu, dosyaları kapatmak için ise fclose() fonksiyonu kullanılır.
Dosyaya Veri Yazma Fonksiyonları
Dosyaya veri yazma işlemi, bir programın verileri kaydetmek için kullanabileceği en önemli fonksiyonlardan biridir. Bu işlemi gerçekleştirmek için, farklı fonksiyonlar kullanılabilir. Bu fonksiyonlardan bazıları şunlardır:
Fwrite fonksiyonu, veriyi dosyaya belli bir uzunlukta yazmak için kullanılır. Bu fonksiyonla istenilen veri, dosyanın herhangi bir bölümüne yazılabilir. Yazılacak verinin uzunluğu, bu fonksiyonda belirtilir. Fwrite fonksiyonu, dosyaya yazma işlemini tamamladıktan sonra, kaç adet veri yazıldığını da geri döndürür.
Fputc fonksiyonu, karakter bazlı işlemler için kullanılır. Bu fonksiyonla, dosyaya karakter yazmak mümkündür. Fputc fonksiyonu, sadece bir karakter yazmayı sağlar. Eğer dosyaya birden fazla karakter yazılacaksa, bu fonksiyon tekrar tekrar kullanılmalıdır.
Fputs fonksiyonu, dosyaya bir kelime veya cümle yazmak için kullanılır. Bu fonksiyon, karakter dizisi şeklindeki herhangi bir veriyi dosyaya yazabilir.
Fprintf fonksiyonu, dosyaya formatlı bir şekilde veri yazmak için kullanılır. Bu fonksiyon, aynı zamanda ekrana veri yazmak için de kullanılabilir. Örneğin, printf fonksiyonu gibi çalışır. Fprintf fonksiyonunda, yazılacak veri özel bir formatla belirtilir. Bu format, fonksiyonun çalışma şeklini belirler.
Fwrite Fonksiyonu
Fwrite fonksiyonu, dosyalara veri yazmak için kullanılır. Bu fonksiyon bize belirli bir uzunlukta veriyi dosyaya yazma olanağı sağlar. Fonksiyonun kullanımı oldukça basittir ve kullanıcıya esneklik sağlar. Fwrite fonksiyonu tipik olarak şu şekilde çalışır:
- Dosya açılır ve açma modu belirlenir
- Fwrite fonksiyonu çağrılır ve dosya işaretçisi belirli bir konuma götürülür
- Fwrite fonksiyonu, dosya işaretçisinde belirlenen konumdan itibaren belirli bir uzunlukta veriyi dosyaya yazar
- Dosya işlemi tamamlandığında dosya kapatılır
Fwrite fonksiyonu, C programlama dilinde kullanılan en sık dosya yazma fonksiyonlarından biridir. Bu fonksiyonu kullanarak dosyaya veri yazarken dikkat edilmesi gereken önemli bir konu, dosyaya yazılacak verinin uzunluğudur. Bu nedenle, fwrite fonksiyonunun kullanımı sırasında verinin uzunluğu ve dosya işaretçisi konumu doğru bir şekilde belirlenmelidir.
Örneğin, bir metin dosyasında belirli bir konumdan itibaren 50 bayt veri yazmak istediğimizi varsayalım. Bunun için fwrite fonksiyonu şu şekilde çağırılabilir:
fwrite(°pointer°, 50, 1, °file°) |
Burada °pointer° yazılacak verinin bellekteki adresini, °file° ise dosyanın açma modunu belirleyen dosya işaretçisini temsil eder. Fonksiyon çağrısı sırasında belirtilen 50, yazılacak verinin uzunluğunu belirtir. Bu örnekte, dosyaya sadece 50 byte veri yazdırılacak. Sonuç olarak, fwrite fonksiyonu dosyaya belirlenen miktarda veri yazacak ve yazılan verinin bayt sayısını geri döndürecektir.
Fputc Fonksiyonu
Fputc fonksiyonu, dosyaya karakter bazlı işlem yapmak için kullanılır. Bu fonksiyon, dosyanın sonuna karakter eklemek veya dosyanın belirli bir konumuna karakter eklemek için kullanılabilir. Fonksiyon bir karakter ve dosya göstericisi alır. Fonksiyon, karakteri dosyaya yazar ve göstericiyi bir karakter ileri taşır.
Fputc fonksiyonu, özellikle dosya işlemleri için çok kullanışlı bir fonksiyondur. Karakter dizilerini tek bir karakter halinde yazdığından bellek verimliliği açısından da faydalıdır. Ancak, dosyaya yazma işlemi çok yavaş çalışabilir. Bu nedenle büyük veri dosyaları için, fwrite veya fputs fonksiyonları da kullanılabilir.
Aşağıdaki tabloda, Fputc fonksiyonunun kullanımı ve parametreleri açıklanmaktadır:
Fonksiyon | Fputc |
---|---|
Açıklama | Dosyaya karakter yazar |
Sözdizimi | int fputc(int karakter, FILE *dosya_göstericisi); |
Değer | Fonksiyon başarılı bir şekilde çalışırsa karakterin ASCII değeri döndürülür, aksi takdirde EOF (-1) döndürülür. |
Fputs Fonksiyonu
Fputs fonksiyonu, dosya yazma işlemlerinde kullanılan temel fonksiyonlardan biridir ve dosyaya bir kelime veya cümle yazmak için kullanılır. Fonksiyon, C programlama dilinde yer alan stdio.h kütüphanesi altında yer alır.
Bir dosyaya yazmak için kullanılan fputs fonksiyonu, iki parametre alır: yazılacak string (kelime veya cümle) ve dosya işaretçisi. İlk parametre olan string, dosyaya yazılacak kelime veya cümleyi belirtirken, ikinci parametre olan dosya işaretçisi ise açılan dosyanın adresini belirtir. Fonksiyonun kullanımı şu şekildedir:
Syntax | int fputs(const char *str, FILE *fptr); |
---|---|
Parametreler |
|
Fputs fonksiyonu herhangi bir hata oluşması durumunda EOF, aksi takdirde sıfır döndürür. Bu nedenle, fonksiyonun kullanımdan dönüş değeri kontrol edilmelidir.
Örnek bir fputs fonksiyonu kullanımı:
FILE *fp;fp = fopen("ornek.txt", "w");fputs("Merhaba Dünya!", fp);fclose(fp);
Bu örnek kod, "ornek.txt" isimli dosyaya "Merhaba Dünya!" yazısını yazacaktır. Dosya işlemi bittiğinde ise dosya kapatılır.
Fprintf Fonksiyonu
Fprintf fonksiyonu, dosyalara formatlı veri yazmak için kullanılan önemli bir fonksiyondur. Bu fonksiyon, printf fonksiyonu ile benzerlik gösterir ancak printf fonksiyonundan farklı olarak dosyaya yazılmak istenen veri, printf fonksiyonundaki gibi standart çıktıya gönderilmez. Bunun yerine, dosyadaki konum belirtilir ve sonra istenen formatlı veri dosyaya yazılır.
Fprintf fonksiyonu, dosyaya yazılmak istenen verileri belirli formatlamalarla yazmanın yanı sıra dosyalama işlemlerini de gerçekleştirir. Dosyaya yalnızca bir tür veri yazmak yerine birden fazla veri türü yazabilmek için de kullanılabilir.
Örneğin, bir dosyaya bir kelime ve bir sayı yazmak isteyebilirsiniz. Fprintf fonksiyonunu kullanarak, kelimeyi %s formatıyla, sayıyı ise %d formatıyla dosyaya yazabilirsiniz. Böylece, dosyada sadece kelime ve sayı değil, aynı zamanda bunların türleri de belirtilmiş olur.
Format Karakteri | Açıklama |
---|---|
%c | Karakter |
%d | Tam Sayı |
%f | Ondalıklı Sayı |
%s | Karakter Dizisi |
Fprintf fonksiyonunun kullanım şekli, printf fonksiyonunundan farklıdır. Dosya işaretçisi ve istenen veri formatı fonksiyon içinde belirtilir. Örneğin:
fprintf(dosyaIsmi, "%s %d", "Merhaba", 123);
Bu örnek, dosyaya "Merhaba 123" yazacaktır. İlk parametre olarak dosya işaretçisi kullanılır ve ikinci parametrede yazılacak veri, formatlandığı şekilde belirtilir.
Fprintf fonksiyonu, dosyaya formatlı bir şekilde yazmak isteyen yazılım geliştiriciler için oldukça işlevsel bir fonksiyondur.
Dosyadan Veri Okuma Fonksiyonları
Dosyadan veri okuma işlemleri, dosyaların işlenmesi sırasında oldukça önemli bir yere sahiptir. Bu işlemde, dosyadan okunacak verinin uzunluğu ve veri yapısı belirleyici bir rol oynamaktadır. Dosyadan veri okuma işlemlerini gerçekleştirmek için farklı fonksiyonlar kullanabilirsiniz. Bu makalede, dosyadan veri okumanın temel fonksiyonlarını inceleyeceğiz.
Fread fonksiyonu, dosyadan belirlenmiş uzunluktaki veriyi okumak için kullanılır. Bu fonksiyon, farklı veri tiplerindeki verileri okuyabilecek yapıdadır. Fread fonksiyonu çağrıldığında, dosyadan belirlenen uzunluktaki veri okunur ve belleğe yüklenir. Fread fonksiyonunun kullanımı, aşağıdaki şekilde gösterilebilir:
fread(adres, boyut, elemanSayisi, dosyaAdi) |
- Adres: Okunan verilerin bellekte depolanacağı adresi ifade eder.
- Boyut: Okunacak olan verinin boyutunu ifade eder.
- ElemanSayisi: Okunan verilerin eleman sayısını ifade eder.
- DosyaAdi: Okunacak olan dosyanın adını ifade eder.
Fgets fonksiyonu, dosyadan bir satır okumak için kullanılır. Fgets fonksiyonu, dosyanın okunacak bir sonraki satırını okur ve bu satırı bir karakter dizisine yazar. Fgets fonksiyonunun kullanımı, aşağıdaki şekilde gösterilebilir:
fgets(karakterDizisi, boyut, dosyaAdi) |
- KarakterDizisi: Okunan verinin yazılacağı karakter dizisidir.
- Boyut: Okunan verinin en fazla kaç karakter olabileceğini ifade eder.
- DosyaAdi: Okunacak olan dosyanın adını ifade eder.
Bu fonksiyonun çağrılması sonrasında, dosyadan belirlenen boyutta veri okunur ve karakter dizisine yüklenir.
Fread Fonksiyonu
İşletim sistemimizde, dosyalardan veri okumak için kullanacağınız bir fonksiyon da fread fonksiyonudur. Fread fonksiyonu, dosyadan okuma işlemini gerçekleştirmek için kullanılır ve belirtilen uzunluktaki verileri okur.
Bunun için fread fonksiyonunun imzası şu şekildedir:
Fonksiyon Adı | Tanımı |
---|---|
fread() | Bir dosyadan belirli sayıda veriyi okur |
Fread fonksiyonu, belirli bir uzunluktaki veriyi okumak için kullanılır. Bu fonksiyonla, bir veri tabanından bir kayıt almak veya daha büyük bir dosyanın bir bölümünü okumak gibi işlemler gerçekleştirilebilir. Bu fonksiyonun kullanımı için öncelikle bir dosya tanımlayıcısına ihtiyacınız vardır. Bu tanımlayıcı, dosyayı açmak için kullanılan fopen fonksiyonu tarafından döndürülür.
Fread fonksiyonunun kullandığı parametreler şunlardır:
- ptr: Okunan verinin saklanacağı bellek adresini gösteren bir işaretçi
- size: Okunacak verinin her bir elemanının boyutunu belirten bir tam sayı
- count: Okunacak eleman sayısını belirten bir tam sayı
- stream: Dosya tanımlayıcısını gösteren bir işaretçi
Bir örnek kodumuz:
FILE *dosya; char metin[1024]; dosya = fopen("ornek.txt", "r"); if(dosya == NULL) { printf("Dosya açılamadı."); } else { fread(metin, 1, 1024, dosya); printf("Okunan veri: %s", metin); } fclose(dosya);
Bu örnekte, "ornek.txt" dosyası açılır ve fread fonksiyonu kullanılarak dosyadan 1024 bayt okunur ve metin adlı diziye yazılır. Daha sonra, okunan veri ekrana yazdırılır ve dosya kapatılır.
Fgets Fonksiyonu
Dosyalardan veri okuma işlemlerinde kullanılan bir diğer fonksiyon ise Fgets fonksiyonudur. Bu fonksiyon, dosyadan bir satır okumak için kullanılır. Fgets fonksiyonu, bir dosyayı açtığımızda okunacak olan verileri bir satır satır okur. Bu fonksiyona verilecek olan parametreler ise sırasıyla okunacak dosya, okunacak karakter sayısı ve dosya göstericisidir.
Fgets fonksiyonu okuma işlemini yaptıktan sonra dosya göstericisi, okunan satırdaki son karakterin referansını tutar. Bu sayede, bir sonraki okuma işlemi, bir önceki işlemin bittiği yerden tam olarak devam edecektir. Bu özellik sayesinde farklı satırlardaki veriler de okunabilir.
Fgets fonksiyonunun kullanımı oldukça basittir. Öncelikle dosyanın açılması gerekir ve ardından fgets fonksiyonu ile dosyadan istenilen satır okunur. Eğer dosyanın sonuna gelinmiş ise NULL değeri döndürür. Ayrıca, fgets fonksiyon nul karakteri de dahil olmak üzere bir satırın tamamını okur, bu yüzden okunan satırın sonunda bir new line karakterinin olması beklenir.
Örnek olarak, bir dosyadan satırlar okuyup ekrana yazdırmak için aşağıdaki kod bloğu kullanılabilir:
```c#include
int main() { FILE *fp; char c[1000];
fp = fopen("ornek.txt", "r");
while (fgets(c, 1000, fp) != NULL) printf("%s", c);
fclose(fp); return 0;}```
Yukarıdaki kod bloğunda, örnek.txt dosyası okunmakta ve fgets fonksiyonu ile dosyadan satır satır veri okunup ekrana yazdırılmaktadır.
Fgets fonksiyonu, verilerin oldukça büyük olduğu durumlarda kullanışlıdır ve özellikle metin tabanlı verilerin okunmasında sıkça kullanılır.