Defined in header <stdio.h> | ||
---|---|---|
size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream ); | (until C99) | |
size_t fwrite( const void *restrict buffer, size_t size, size_t count, FILE *restrict stream ); | (since C99) |
Writes count
of objects from the given array buffer
to the output stream stream
. The objects are written as if by reinterpreting each object as an array of unsigned char
and calling fputc
size
times for each object to write those unsigned char
s into stream
, in order. The file position indicator for the stream is advanced by the number of characters written.
buffer | - | pointer to the first object in the array to be written |
size | - | size of each object |
count | - | the number of the objects to be written |
stream | - | pointer to the output stream |
The number of objects written successfully, which may be less than count
if an error occurs.
If size
or count
is zero, fwrite
returns zero and performs no other action.
#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]); }
Output:
wrote 5 elements out of 5 requested read back: 1.000000 2.000000 3.000000 4.000000 5.000000
(C99)(C11)(C11)(C11)(C11) | prints formatted output to stdout , a file stream or a buffer (function) |
writes a character string to a file stream (function) |
|
reads from a file (function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/c/io/fwrite