fread <STDIO.H>
Składnia: size_t fread(void *bufor, size_t wielkość, size_t n, FILE *stream);
gdzie:
bufor - wskaźnik do bloku pamięci, gdzie maja być umieszczone wczytane dane.
wielkość - długość każdego wczytywanego elementu w bajtach.
n - ilość wczytywanych elementów.
stream - wskaźnik do strumienia, z którego czytamy

Opis
Wczytuje ze strumienia wejściowego stream n elementów po wielkość bajtów każdy i zapisuje wczytane dane w pamięci w obszarze wskazanym przez bufor. Ogólna ilość wczytanych bajtów = n * wielkość.

Zwracana wartość:

  • powodzenie - ilość wczytanych elementów (nie bajtów);
  • błąd lub koniec pliku - zero.

Przykład:


#include <stdio.h>
#include <string.h>

int main(void)
{ FILE *stream;
char tekst[] = "To jest test...";
char bufor[20];

if ((stream = fopen("TEST.$$$", "w+")) == NULL)
{ fprintf(stderr, "Nie można otworzyć pliku.\n");
return 1;
}

// zapis do pliku
fwrite(tekst, strlen(tekst)+1, 1, stream);

// przesunięcie wskaźnika na początek pliku
fseek(stream, SEEK_SET, 0);

// odczytanie i wyświetlenie tekstu
fread(bufor, strlen(tekst)+1, 1, stream);
printf("%s\n", bufor);

fclose(stream);
return 0;
}

fwrite <STDIO.H>
Składnia: size_t fwrite(const void *bufor, size_t wielkość, size_t n, FILE*stream);
gdzie:
bufor - wskaźnik do bloku pamięci, gdzie znajduja się dane do zapisania.
wielkość - długość każdego zapisywanego elementu w bajtach.
n - ilość zapisywanych elementów.
stream - wskaźnik do strumienia, do którego zapisujemy.

Opis
Zapisuje do strumienia wyjściowego stream n elementów po wielkość bajtów każdy z obszaru pamięci wskazanego przez bufor. Ogólna ilość zapisanych bajtów = n * wielkość.

Zwracana wartość:

  • powodzenie - ilość zapisanych elementów (nie bajtów);
  • błąd - zero.

Przykład:

#include <stdio.h>

int main(void)
{ FILE *stream;
  struct { int i;
           char ch;
         }stru;

  if ((stream = fopen("TEST.$$$", "wb")) == NULL)
  { fprintf(stderr, "Nie można otworzyć pliku.\n");
    return 1;
  }
  stru.i = 0;
  stru.ch = 'A';
  fwrite(&stru, sizeof(stru), 1, stream);   // zapis struktury do pliku
  fclose(stream);
  return 0;
}