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 />

#include <br />

#include <br />

#define FILE_NAME_LEN 256<br />

#define BUFFER_SIZE 20<br />

int main()<br />

{<br />

char source_file_name[FILE_NAME_LEN];<br />

char buffer [BUFFER_SIZE];<br />

FILE *fs;<br />

printf("yazdirilacak dosya ismi: ");<br />

gets(source_file_name);<br />

fs = fopen(source_file_name, "r");<br />

if (fs == NULL) {<br />

printf("%s dosyasi acilamiyor!\n", source_file_name);<br />

exit(EXIT_FAILURE);<br />

}<br />

while (!feof(fs)) {<br />

fgets(buffer, BUFFER_SIZE, fs);<br />

printf("%s", buffer);<br />

}<br />

fclose(fs);<br />

}<br />

return 0;<br />

ferror İşlevi<br />

Okuma ya da yazma yapan işlevler, okuma ya da yazma işleminde bir hata olduğunda<br />

içsel olarak çoğunlukla bitsel bir alanda tutulan bir bayrağı birlerler. Okuma ya da yazma<br />

yapan işlevler önce bu bayrağın değerine bakar. Bayrak set edilmişse yeni bir<br />

okuma/yazma işlemi yapılamaz. Önce bayrağın tekrar sıfırlanması gerekir. ferror işlevi<br />

hata bayrağının birlenip birlenmediğini sınar:<br />

int ferror(FILE *);<br />

hata bayrağı set edilmişse işlev sıfır dışı bir değere geri döner. Hata bayrağı set<br />

edilmemişse işlev 0 değerine geri döner.<br />

clearerr İşlevi<br />

void clearerr(FILE *stream );<br />

Okuma ya da yazma işleminde bir hata olduğunda hata bayrağının set edildiğini, dosya<br />

sonundan okuma yapma girişiminde de EOF bayrağının set edildiğini söylemiştik. Bu<br />

bayraklar set edilmiş durumdayken bir okuma ya da yazma işlemi gerçekleştirilemez.<br />

Yeniden bir okuma ya da yazma işleminin yapılabilmesi için önce bayrakların sıfırlanması<br />

gerekir. Bu sıfırlama işlemi için clearerr işlevi çağrılabilir.<br />

İşlev ilgili dosyaya ilişkin FILE * türünden değeri alır ve bu dosyanın EOF ve Error<br />

bayraklarını sıfırlar.<br />

ungetc İşlevi<br />

Bu işlev dosyadan okunan karakteri, dosyanın tampon alanına geri koyar.<br />

int ungetc(int c, FILE *f);<br />

479

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

Saved successfully!

Ooh no, something went wrong!