Next: , Previous: vfprintf, Up: Stdio


4.71 vfscanf, vscanf, vsscanf—format argument list

Synopsis

     #include <stdio.h>
     #include <stdarg.h>
     int vscanf(const char *fmt, va_list list);
     int vfscanf(FILE *fp, const char *fmt, va_list list);
     int vsscanf(const char *str, const char *fmt, va_list list);
     
     int _vscanf_r(struct _reent *reent, const char *fmt,
         va_list list);
     int _vfscanf_r(struct _reent *reent, FILE *fp, const char *fmt,
         va_list list);
     int _vsscanf_r(struct _reent *reent, const char *str,
         const char *fmt, va_list list);
     

Description
vscanf, vfscanf, and vsscanf are (respectively) variants of scanf, fscanf, and sscanf. 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: vscanf returns the number of input fields successfully scanned, converted, and stored; the return value does not include scanned fields which were not stored.

If vscanf attempts to read at end-of-file, the return value is EOF.

If no fields were stored, the return value is 0.

The routines _vscanf_r, _vfscanf_f, and _vsscanf_r are reentrant versions which take an additional first parameter which points to the reentrancy structure.


Portability
These are GNU extensions.

Supporting OS subroutines required: