17,12 → 17,16 |
|
/* |
FUNCTION |
<<fwrite>>---write array elements |
<<fwrite>>, <<fwrite_unlocked>>---write array elements |
|
INDEX |
fwrite |
INDEX |
fwrite_unlocked |
INDEX |
_fwrite_r |
INDEX |
_fwrite_unlocked_r |
|
ANSI_SYNOPSIS |
#include <stdio.h> |
29,10 → 33,19 |
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]>); |
|
TRAD_SYNOPSIS |
#include <stdio.h> |
size_t fwrite(<[buf]>, <[size]>, <[count]>, <[fp]>) |
41,7 → 54,15 |
size_t <[count]>; |
FILE *<[fp]>; |
|
#define _BSD_SOURCE |
#include <stdio.h> |
size_t fwrite_unlocked(<[buf]>, <[size]>, <[count]>, <[fp]>) |
char *<[buf]>; |
size_t <[size]>; |
size_t <[count]>; |
FILE *<[fp]>; |
|
#include <stdio.h> |
size_t _fwrite_r(<[ptr]>, <[buf]>, <[size]>, <[count]>, <[fp]>) |
struct _reent *<[ptr]>; |
char *<[buf]>; |
49,6 → 70,14 |
size_t <[count]>; |
FILE *<[fp]>; |
|
#include <stdio.h> |
size_t _fwrite_unlocked_r(<[ptr]>, <[buf]>, <[size]>, <[count]>, <[fp]>) |
struct _reent *<[ptr]>; |
char *<[buf]>; |
size_t <[size]>; |
size_t <[count]>; |
FILE *<[fp]>; |
|
DESCRIPTION |
<<fwrite>> attempts to copy, starting from the memory location |
<[buf]>, <[count]> elements (each of size <[size]>) into the file or |
58,9 → 87,18 |
<<fwrite>> also advances the file position indicator (if any) for |
<[fp]> by the number of @emph{characters} actually written. |
|
<<_fwrite_r>> is simply the reentrant version of <<fwrite>> that |
takes an additional reentrant structure argument: <[ptr]>. |
<<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 |
70,6 → 108,8 |
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>>. |
*/ |
89,6 → 129,11 |
#include "fvwrite.h" |
#endif |
|
#ifdef __IMPL_UNLOCKED__ |
#define _fwrite_r _fwrite_unlocked_r |
#define fwrite fwrite_unlocked |
#endif |
|
/* |
* Write `count' objects (each size `size') from memory to the given file. |
* Return the number of whole objects written. |