08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

C ve Sistem Programcıları Derneği - C Ders Notları - Necati Ergin<br />

Özellikle büyük dosyalar söz konusu olduğunda fsetpos/fgetpos işlevleri fseek işlevine<br />

tercih edilmelidir. Çünkü fseek işlevinin ikinci parametresi long türden iken,<br />

fgetpos/fsetpos işlevlerinde kullanılan fpos_t türü çok büyük dosyaların konum bilgilerini<br />

tutabilecek büyüklükte olan, içsel olarak tanımlanmış bir yapı türü olabilir.<br />

Dosyalarla İlgili İşlem Yapan Diğer Standart İşlevler<br />

remove İşlevi<br />

Bu işlev bir dosyayı siler. İşlevin bildirimi<br />

int remove (const char *filename);<br />

biçimindedir. İşleve argüman olarak silinecek dosyanın ismi gönderilir. İşlevin geri dönüş<br />

değeri, dosyanın başarılı bir şekilde silinebilmesi durumunda 0, aksi halde yani dosya<br />

silinememişse sıfır dışı bir değerdir. Açık olan bir dosyanın silinebilmesi sisteme bağlı<br />

olduğundan, yazılan kodun taşınabilirliği açısından, silinecek bir dosya açık ise önce<br />

kapatılmalıdır.<br />

rename İşlevi<br />

Bu işlev bir dosyanın ismini değiştirmek için kullanılır. İşlevin bildirimi:<br />

int rename (const char *old, const char *new);<br />

biçimindedir.<br />

İşleve birinci argüman olarak dosyanın eski ismi ikinci argüman olarak ise dosyanın yeni<br />

ismi gönderilmelidir. İşlevin geri dönüş değeri, isim değiştirmen işleminin başarılı olması<br />

durumunda 0, aksi halde yani dosyanın ismi değiştirilemmesi durumunda 0 dışı bir<br />

değerdir. Sistemlerin çoğunda açık olan bir dosyanın isminin değiştirilmeye çalışılması<br />

durumunda işlev başarısız olur ve 0 dışı bir değere geri döner.<br />

tmpfile İşlevi<br />

İşlev geçici bir dosya açmak amacıyla kullanılır. İşlevin bildirimi :<br />

FILE * tmpfile(void);<br />

tmpfile işlevi açtığı geçici dosyayı "wb" modunda açar. Açılan dosya fclose işlevi ile<br />

kapatıldığında ya da dosya kapatılmazsa program sona erdiğinde otomatik olarak silinir.<br />

İşlevin geri dönüş değeri, açılan geçici dosya ile ilişki kurulmasına yarayacak, FILE yapısı<br />

türünden bir adrestir. Herhangi bir nedenle dosya geçici dosya açılamıyorsa işlev NULL<br />

adresine geri döner.<br />

stdio.h başlık dosyası içinde tanımlanan TMP_MAX simgesel değişmezi tmpfile işleviyle<br />

yaratılabilecek maksimum geçici dosya sayısını gösterir. Yazılan bir kaynak kodda, aynı<br />

anda açılmış olan geçici dosyaların sayısı TMP_MAX değerinden daha büyük olmamalıdır.<br />

tmpnam İşlevi<br />

Geçici olarak kullanılacak bir dosya için bir isim üretilmesi amacıyla kullanılır. İşlevin<br />

stdio.h başlık dosyası içindeki bildirimi:<br />

char *tmpnam(char *s);<br />

biçimindedir. İşlev, ürettiği dosya ismini kendisine gönderilen char türden adrese yazar.<br />

İşlev, aynı zamanda aynı dosya ismini statik ömürlü bir dizinin içine yazarak, bu dizinin<br />

başlangıç adresini geri döndürür. Eğer işleve argüman olarak NULL adresi gönderilirse,<br />

işlev yalnızca statik ömürlü dizinin adresinin döndürür. İşleve char türden bir dizinin<br />

474

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!