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 BLOCK_SIZE 1024<br />

#define MAX_NAME_LEN 80<br />

int main()<br />

{<br />

FILE *fs, *fd;<br />

char source_file_name[MAX_NAME_LEN];<br />

char dest_file_name[MAX_NAME_LEN];<br />

unsigned int n;<br />

unsigned char buf[BLOCK_SIZE];<br />

printf("kaynak dosya ismini giriniz : ");<br />

gets(source_file_name);<br />

printf("yeni dosya ismini giriniz : ");<br />

gets(dest_file_name);<br />

if ((fs = fopen(source_file_name, "rb")) == NULL) {<br />

printf("%s dosyası açılamıyor!\n", source_file_name);<br />

exit(EXIT_FAILURE);<br />

}<br />

printf("%s dosyası açıldı!\n", source_file_name);<br />

if ((fd = fopen(dest_file_name, "wb")) == NULL) {<br />

printf("%s dosyası yaratılamıyor!\n", source_file_name);<br />

fclose(fs);<br />

exit(EXIT_FAILURE);<br />

}<br />

printf("%s dosyası yaratılamıyor!\n", dest_file_name);<br />

while ((n = fread(buf, 1, BLOCK_SIZE, fs)) != 0)<br />

fwrite(buf, 1, n, fd);<br />

fclose(fs);<br />

printf("%s dosyası kapatıldı!\n", source_file_name);<br />

fclose(fd);<br />

printf("%s dosyası kapatıldı!\n", dest_file_name);<br />

printf("kopyalama başarıyla tamamlandı\n");<br />

}<br />

return 0;<br />

Yukarı programı inceleyin. Kopyalama aşağıdaki döngü deyimiyle yapılıyor:<br />

while ((n = fread(buf, 1, BLOCK_SIZE, fs)) != 0)<br />

fwrite(buf, 1, n, fd);<br />

fread işlevi ile fs ile gösterilen dosyadan, 1 byte'lık bloklardan BLOCK_SIZE kadar<br />

okunmaya çalışılıyor. fread işlevinin geri dönüş değeri n isimli değişkende saklanıyor. n<br />

değişkenine atanan değer 0 olmadığı sürece döngünün devamı sağlanıyor. Başka bir<br />

deyişle while döngüsü dosyadan en az 1 byte okuma yapılabildiği sürece dönüyor. while<br />

döngüsünün gövdesinde yer alan fwrite işlevi çağrısı ile kaynak dosyadan okunan n byte<br />

hedef dosyaya yazılıyor.<br />

Şimdi de aşağıdaki programı inceleyin. Bu programda komut satırından girilen iki değer<br />

arasındaki tüm asal sayılar, ismi komut satırından ismi girilen dosyaya formatsız olarak<br />

yazılıyor. Program komut satırından aşağıdaki gibi çalıştırılabilir:<br />

<br />

#include <br />

#include <br />

470

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

Saved successfully!

Ooh no, something went wrong!