Namespaces
Variants
Views
Actions

fwrite

From cppreference.com
< c‎ | io
Revision as of 02:56, 8 June 2014 by Newatthis (Talk | contribs)

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.

Contents

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

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

See also

prints formatted output to stdout, a file stream or a buffer
(function) [edit]
writes a character string to a file stream
(function) [edit]
reads from a file
(function) [edit]