Deklaracja edytuj

size_t fwrite(const void *ptr, size_t size, size_t nitems, FILE *stream);


Plik nagłówkowy edytuj

stdio.h


Argumenty edytuj

  • ptr : adres danych , które mają być zapisane. Np. wskaźnik do pierwszego obiektu w tablicy, który ma zostać zapisany
  • size : rozmiar elementu tablicy
  • nitems : liczba elementów do zapisu
  • stream : plik, na którym wykonywana jest operacja

ptr edytuj

Deklaracja

 void *ptr

informuje że argument nie ma z góry określonego typu. Jest to uniwersalny typ wskaźnikowy

Opis edytuj

Funkcja fwrite kopiuje nitems elementów z podanej tablicy do pliku. Kopiowanie kończy się w przypadku wystąpienia błędu lub po skopiowaniu podanej liczby elementów. Wskaźnik pliku jest przesuwany, tak by wskazywał pierwszy element po ostatnim zapisanym.


Wartość zwracana edytuj

Liczba faktycznie zapisanych elementów.

Przykład edytuj



 FILE * fp = fopen("worley.pnm","wb");
 unsigned char b = 200;
 fwrite(&b,1,1,fp);

lub

 FILE * fp = fopen("worley.pnm","wb");
 unsigned char b[1];
 b[0] = 200;
 fwrite(b,1,1,fp);
//https://en.cppreference.com/w/c/io/fwrite
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
enum { SIZE = 5 };
int main(void)
{
    double a[SIZE] = {1, 2, 3, 4, 5};
    FILE *f1 = fopen("file.bin", "wb");
    assert(f1);
    size_t r1 = fwrite(a, sizeof a[0], SIZE, f1);
    printf("wrote %zu elements out of %d requested\n", r1,  SIZE);
    fclose(f1);
 
    double b[SIZE];
    FILE *f2 = fopen("file.bin", "rb");
    size_t r2 = fread(b, sizeof b[0], SIZE, f2);
    fclose(f2);
    printf("read back: ");
    for(size_t i = 0; i < r2; i++)
        printf("%f ", b[i]);
}

Zobacz też edytuj

Alfabetyczny spis funkcji biblioteki standardowej ANSI C (tzw. libc) w wersji C89.
fscanf (czytanie pojedynczych zmiennych)
fread (analogiczna operacja do czytania z pliku)
fopen (otwarcie pliku)
fclose (zamknięcie pliku)