VISCANF(3)

NAME
viscanf, vfiscanf, vsiscanf, _viscanf_r, _vfiscanf_r, _vsiscanf_r - format argument list

SYNOPSIS

#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: