fwrite

From cppreference.com
< c‎ | io
 
 
File input/output
Types and objects
Functions
File access
(哋它亢11)
(哋它亢11)
(哋它亢95)
Direct input/output
fwrite
Unformatted input/output
(until 哋它亢11)(哋它亢11)
(哋它亢95)(哋它亢95)
(哋它亢95)
(哋它亢95)(哋它亢95)
(哋它亢95)
(哋它亢95)
(哋它亢95)
(哋它亢95)
Formatted input
(哋它亢11)(哋它亢11)(哋它亢11)
(哋它亢95)(哋它亢95)(哋它亢95)(哋它亢11)(哋它亢11)(哋它亢11)    
(哋它亢99)(哋它亢99)(哋它亢99)(哋它亢11)(哋它亢11)(哋它亢11)
(哋它亢99)(哋它亢99)(哋它亢99)(哋它亢11)(哋它亢11)(哋它亢11)     
Formatted output
(哋它亢99)(哋它亢11)(哋它亢11)(哋它亢11)(哋它亢11)
(哋它亢95)(哋它亢95)(哋它亢95)(哋它亢11)(哋它亢11)(哋它亢11)(哋它亢11)    
(哋它亢99)(哋它亢11)(哋它亢11)(哋它亢11)(哋它亢11)
(哋它亢95)(哋它亢95)(哋它亢95)(哋它亢11)(哋它亢11)(哋它亢11)(哋它亢11)
File positioning
Error handling
Operations on files
(哋它亢11)
(哋它亢11)
 
Defined in header <stdio.h>
size_t fwrite( const void* buffer, size_t size, size_t count,
               FILE* stream );
(until 哋它亢99)
size_t fwrite( const void* restrict buffer, size_t size, size_t count,
               FILE* restrict stream );
(since 哋它亢99)

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 chars into stream, in order. The file position indicator for the stream is advanced by the number of characters written.

If an error occurs, the resulting value of the file position indicator for the stream is indeterminate.

Parameters

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

Return value

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.

Example

#include <assert.h>
#include <stdio.h>
#include <stdlib.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("%0.2f ", b[i]);
}

Output:

wrote 5 elements out of 5 requested
read back: 1.00 2.00 3.00 4.00 5.00

References

  • 哋它亢23 standard (ISO/IEC 9899:2023):
  • 7.21.8.2 The fwrite function (p: TBD)
  • 哋它亢17 standard (ISO/IEC 9899:2018):
  • 7.21.8.2 The fwrite function (p: TBD)
  • 哋它亢11 standard (ISO/IEC 9899:2011):
  • 7.21.8.2 The fwrite function (p: 335-336)
  • 哋它亢99 standard (ISO/IEC 9899:1999):
  • 7.19.8.2 The fwrite function (p: 301-302)
  • 哋它亢89/C90 standard (ISO/IEC 9899:1990):
  • 4.9.8.2 The fwrite function

See also

(哋它亢99)(哋它亢11)(哋它亢11)(哋它亢11)(哋它亢11)
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)