The fwrite() function shall write, from the array pointed to by
ptr, up to nitems elements whose size is specified by
size, to the stream pointed to by stream. For each object,
size calls shall be made to the fputc() function, taking the
values (in order) from an array of unsignedchar exactly
overlaying the object. The file-position indicator for the stream (if defined)
shall be advanced by the number of bytes successfully written. If an error
occurs, the resulting value of the file-position indicator for the stream is
The st_ctime and st_mtime fields of the file shall be marked for
update between the successful execution of fwrite() and the next
successful completion of a call to fflush() or fclose() on the
same stream, or a call to exit() or abort().
The fwrite() function shall return the number of elements successfully
written, which may be less than nitems if a write error is encountered.
If size or nitems is 0, fwrite() shall return 0 and the
state of the stream remains unchanged. Otherwise, if a write error occurs, the
error indicator for the stream shall be set, and errno shall be
set to indicate the error.
Because of possible differences in element length and byte ordering, files
written using fwrite() are application-dependent, and possibly cannot
be read using fread() by a different application or by the same
application on a different processor.
Portions of this text are reprinted and reproduced in electronic form from IEEE
Std 1003.1, 2003 Edition, Standard for Information Technology -- Portable
Operating System Interface (POSIX), The Open Group Base Specifications Issue
6, Copyright (C) 2001-2003 by the Institute of Electrical and Electronics
Engineers, Inc and The Open Group. In the event of any discrepancy between
this version and the original IEEE and The Open Group Standard, the original
IEEE and The Open Group Standard is the referee document. The original
Standard can be obtained online at http://www.opengroup.org/unix/online.html