fwrite
, fwrite_unlocked
—write array elementsSynopsis
#include <stdio.h> size_t fwrite(const void *restrict buf, size_t size, size_t count, FILE *restrict fp); #define _BSD_SOURCE #include <stdio.h> size_t fwrite_unlocked(const void *restrict buf, size_t size, size_t count, FILE *restrict fp); #include <stdio.h> size_t _fwrite_r(struct _reent *ptr, const void *restrict buf, size_t size, size_t count, FILE *restrict fp); #include <stdio.h> size_t _fwrite_unlocked_r(struct _reent *ptr, const void *restrict buf, size_t size, size_t count, FILE *restrict fp);
Description
fwrite
attempts to copy, starting from the memory location
buf, count elements (each of size size) into the file or
stream identified by fp. fwrite
may copy fewer elements than
count if an error intervenes.
fwrite
also advances the file position indicator (if any) for
fp by the number of characters actually written.
fwrite_unlocked
is a non-thread-safe version of fwrite
.
fwrite_unlocked
may only safely be used within a scope
protected by flockfile() (or ftrylockfile()) and funlockfile(). This
function may safely be used in a multi-threaded program if and only
if they are called while the invoking thread owns the (FILE *)
object, as is the case after a successful call to the flockfile() or
ftrylockfile() functions. If threads are disabled, then
fwrite_unlocked
is equivalent to fwrite
.
_fwrite_r
and _fwrite_unlocked_r
are simply reentrant versions of the
above that take an additional reentrant structure argument: ptr.
Returns
If fwrite
succeeds in writing all the elements you specify, the
result is the same as the argument count. In any event, the
result is the number of complete elements that fwrite
copied to
the file.
Portability
ANSI C requires fwrite
.
fwrite_unlocked
is a BSD extension also provided by GNU libc.
Supporting OS subroutines required: close
, fstat
, isatty
,
lseek
, read
, sbrk
, write
.