Giriş
Birinci parametre doldurulacek bellek alanı, ikinci parametre okunacak elemanın byte cinsinden büyüklüğü, üçüncü parametre kaç tane eleman okumak istediğimizdir.
Örnek
1 tane eleman okumak için şöyle yaparız.
Tüm dosyayı okumak için şöyle yaparız.
Döngü Koşulu Olarak fread Kullanmak
while döngüsünden çıktından sonra ferror kontrolü bence isteğe bağlı. EOF'tan dolayı mı yoksa okuma hatasından dolayı mı çıktığımızı anlamaya yarar.
Örnek
Şöyle yaparız
Şöyle yaparız.
Birinci parametre doldurulacek bellek alanı, ikinci parametre okunacak elemanın byte cinsinden büyüklüğü, üçüncü parametre kaç tane eleman okumak istediğimizdir.
Örnek
1 tane eleman okumak için şöyle yaparız.
fread (&foo, sizeof(foo), 1, file )
1 byte'lık n tane (yani buffer büyüklüğü kadar) eleman okumak için şöyle yaparız.fread( buf, 1, sizeof(buf), file );
ÖrnekTüm dosyayı okumak için şöyle yaparız.
FILE *fp=fopen("/data/FR/AjayPatil.jpg","rb");
if(fp)
{
fseek(fp, 0, SEEK_END);
data_size=ftell(fp);
fseek(fp, 0, SEEK_SET);
jdata=( unsigned char *)malloc(data_size+1);
if (!jdata)
{
fclose(fp);
return;
}
fread(jdata, data_size, 1, fp);
fclose(fp);
}
DiğerDöngü Koşulu Olarak fread Kullanmak
while döngüsünden çıktından sonra ferror kontrolü bence isteğe bağlı. EOF'tan dolayı mı yoksa okuma hatasından dolayı mı çıktığımızı anlamaya yarar.
Örnek
Şöyle yaparız
size_t nret;
size_t nmemb = 256;
while (nmemb == (nret = fread(buffer, sizeof *buffer, nmemb, fp))) {
// do something with buffer
}
if (nret) {
// do the same thing with buffer that was in the loop
}
if (ferror(fp)) {
// handle the error, probably exit/return
} else {
// continue execution
}
ÖrnekŞöyle yaparız.
int eof;
do {
eof = fread(&pn, sizeof(int), 1, fp) < 1;
if ( !eof ) {
...
}
} while ( !eof );
Hiç yorum yok:
Yorum Gönder