| 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 in the given array buffer to the output stream stream. Objects are not interpreted in any way.
Parameters
| buffer | - | pointer to the first object 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.
Example
fwrite with error checking.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
// write buffer to file
FILE *f1;
char buffer[] = { 'x' , 'y' , 'z' };
f1 = fopen("file.bin", "wb");
int ret_code = fwrite(buffer, sizeof(char), sizeof(buffer), f1);
if (ret_code < (int)sizeof(buffer))
if (ferror(f1))
{
perror("fwrite()");
fprintf(stderr,"fwrite() failed in file %s at line # %d\n", __FILE__,__LINE__-5);
exit(EXIT_FAILURE);
}
fclose(f1);
// read the same data and print it to the standard output
FILE *f2;
char rbuf[10];
f2 = fopen("file.bin", "rb");
const char* res = fgets(rbuf, sizeof(rbuf), f2);
fclose(f2);
if (res) { // points to rbuf on read success, NULL on failure
puts(res);
}
return EXIT_SUCCESS;
}Output:
xyz
References
- C11 standard (ISO/IEC 9899:2011):
- 7.21.8.2 The fwrite function (p: 335-336)
- C99 standard (ISO/IEC 9899:1999):
- 7.19.8.2 The fwrite function (p: 301-302)
- C89/C90 standard (ISO/IEC 9899:1990):
- 4.9.8.2 The fwrite function
See also
| (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) | |
C++ documentation for fwrite | |
Please login to continue.