viscanf
, vfiscanf
, vsiscanf
—format argument listSynopsis
#include <stdio.h> #include <stdarg.h> int viscanf(const char *fmt, va_list list); int vfiscanf(FILE *fp, const char *fmt, va_list list); int vsiscanf(const char *str, const char *fmt, va_list list); int _viscanf_r(struct _reent *reent, const char *fmt, va_list list); int _vfiscanf_r(struct _reent *reent, FILE *fp, const char *fmt, va_list list); int _vsiscanf_r(struct _reent *reent, const char *str, const char *fmt, va_list list);
Description
viscanf
, vfiscanf
, and vsiscanf
are (respectively) variants
of iscanf
, fiscanf
, and siscanf
. They differ only in
allowing their caller to pass the variable argument list as a
va_list
object (initialized by va_start
) rather than
directly accepting a variable number of arguments.
Returns
The return values are consistent with the corresponding functions:
viscanf
returns the number of input fields successfully scanned,
converted, and stored; the return value does not include scanned
fields which were not stored.
If viscanf
attempts to read at end-of-file, the return value
is EOF
.
If no fields were stored, the return value is 0
.
The routines _viscanf_r
, _vfiscanf_f
, and _vsiscanf_r
are
reentrant versions which take an additional first parameter which points to the
reentrancy structure.
Portability
These are newlib extensions.
Supporting OS subroutines required: