diff options
Diffstat (limited to 'lib/libc/stdio/scanf.3')
-rw-r--r-- | lib/libc/stdio/scanf.3 | 439 |
1 files changed, 0 insertions, 439 deletions
diff --git a/lib/libc/stdio/scanf.3 b/lib/libc/stdio/scanf.3 deleted file mode 100644 index a9bbc41..0000000 --- a/lib/libc/stdio/scanf.3 +++ /dev/null @@ -1,439 +0,0 @@ -.\" Copyright (c) 1990, 1991, 1993 -.\" The Regents of the University of California. All rights reserved. -.\" -.\" This code is derived from software contributed to Berkeley by -.\" Chris Torek and the American National Standards Committee X3, -.\" on Information Processing Systems. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" @(#)scanf.3 8.2 (Berkeley) 12/11/93 -.\" -.Dd December 11, 1993 -.Dt SCANF 3 -.Os -.Sh NAME -.Nm scanf , -.Nm fscanf , -.Nm sscanf , -.Nm vscanf , -.Nm vsscanf , -.Nm vfscanf -.Nd input format conversion -.Sh SYNOPSIS -.Fd #include <stdio.h> -.Ft int -.Fn scanf "const char *format" ... -.Ft int -.Fn fscanf "FILE *stream" "const char *format" ... -.Ft int -.Fn sscanf "const char *str" "const char *format" ... -.Fd #include <stdarg.h> -.Ft int -.Fn vscanf "const char *format" "va_list ap" -.Ft int -.Fn vsscanf "const char *str" "const char *format" "va_list ap" -.Ft int -.Fn vfscanf "FILE *stream" "const char *format" "va_list ap" -.Sh DESCRIPTION -The -.Fn scanf -family of functions scans input according to a -.Fa format -as described below. -This format may contain -.Em conversion specifiers ; -the results from such conversions, if any, -are stored through the -.Em pointer -arguments. -The -.Fn scanf -function -reads input from the standard input stream -.Em stdin , -.Fn fscanf -reads input from the stream pointer -.Fa stream , -and -.Fn sscanf -reads its input from the character string pointed to by -.Fa str . -The -.Fn vfscanf -function -is analogous to -.Xr vfprintf 3 -and reads input from the stream pointer -.Fa stream -using a variable argument list of pointers (see -.Xr stdarg 3 ) . -The -.Fn vscanf -function scans a variable argument list from the standard input and -the -.Fn vsscanf -function scans it from a string; -these are analogous to -the -.Fn vprintf -and -.Fn vsprintf -functions respectively. -Each successive -.Em pointer -argument must correspond properly with -each successive conversion specifier -(but see `suppression' below). -All conversions are introduced by the -.Cm % -(percent sign) character. -The -.Fa format -string -may also contain other characters. -White space (such as blanks, tabs, or newlines) in the -.Fa format -string match any amount of white space, including none, in the input. -Everything else -matches only itself. -Scanning stops -when an input character does not match such a format character. -Scanning also stops -when an input conversion cannot be made (see below). -.Sh CONVERSIONS -Following the -.Cm % -character introducing a conversion -there may be a number of -.Em flag -characters, as follows: -.Bl -tag -width indent -.It Cm * -Suppresses assignment. -The conversion that follows occurs as usual, but no pointer is used; -the result of the conversion is simply discarded. -.It Cm h -Indicates that the conversion will be one of -.Cm dioux -or -.Cm n -and the next pointer is a pointer to a -.Em short int -(rather than -.Em int ) . -.It Cm l -Indicates either that the conversion will be one of -.Cm dioux -or -.Cm n -and the next pointer is a pointer to a -.Em long int -(rather than -.Em int ) , -or that the conversion will be one of -.Cm efg -and the next pointer is a pointer to -.Em double -(rather than -.Em float ) . -.It Cm L -Indicates that the conversion will be -.Cm efg -and the next pointer is a pointer to -.Em long double . -(This type is not implemented; the -.Cm L -flag is currently ignored.) -.It Cm q -Indicates either that the conversion will be one of -.Cm dioux -or -.Cm n -and the next pointer is a pointer to a -.Em long long int -(rather than -.Em int ) , -.El -.Pp -In addition to these flags, -there may be an optional maximum field width, -expressed as a decimal integer, -between the -.Cm % -and the conversion. -If no width is given, -a default of `infinity' is used (with one exception, below); -otherwise at most this many characters are scanned -in processing the conversion. -Before conversion begins, -most conversions skip white space; -this white space is not counted against the field width. -.Pp -The following conversions are available: -.Bl -tag -width XXXX -.It Cm % -Matches a literal `%'. -That is, `%\&%' in the format string -matches a single input `%' character. -No conversion is done, and assignment does not occur. -.It Cm d -Matches an optionally signed decimal integer; -the next pointer must be a pointer to -.Em int . -.It Cm D -Equivalent to -.Cm ld ; -this exists only for backwards compatibility. -.It Cm i -Matches an optionally signed integer; -the next pointer must be a pointer to -.Em int . -The integer is read in base 16 if it begins -with -.Ql 0x -or -.Ql 0X , -in base 8 if it begins with -.Ql 0 , -and in base 10 otherwise. -Only characters that correspond to the base are used. -.It Cm o -Matches an octal integer; -the next pointer must be a pointer to -.Em unsigned int . -.It Cm O -Equivalent to -.Cm lo ; -this exists for backwards compatibility. -.It Cm u -Matches an optionally signed decimal integer; -the next pointer must be a pointer to -.Em unsigned int . -.It Cm x -Matches an optionally signed hexadecimal integer; -the next pointer must be a pointer to -.Em unsigned int . -.It Cm X -Equivalent to -.Cm lx ; -this violates the -.St -ansiC , -but is backwards compatible with previous -.Ux -systems. -.It Cm f -Matches an optionally signed floating-point number; -the next pointer must be a pointer to -.Em float . -.It Cm e -Equivalent to -.Cm f . -.It Cm g -Equivalent to -.Cm f . -.It Cm E -Equivalent to -.Cm lf ; -this violates the -.St -ansiC , -but is backwards compatible with previous -.Ux -systems. -.It Cm F -Equivalent to -.Cm lf ; -this exists only for backwards compatibility. -.It Cm s -Matches a sequence of non-white-space characters; -the next pointer must be a pointer to -.Em char , -and the array must be large enough to accept all the sequence and the -terminating -.Dv NUL -character. -The input string stops at white space -or at the maximum field width, whichever occurs first. -.It Cm c -Matches a sequence of -.Em width -count -characters (default 1); -the next pointer must be a pointer to -.Em char , -and there must be enough room for all the characters -(no terminating -.Dv NUL -is added). -The usual skip of leading white space is suppressed. -To skip white space first, use an explicit space in the format. -.It Cm \&[ -Matches a nonempty sequence of characters from the specified set -of accepted characters; -the next pointer must be a pointer to -.Em char , -and there must be enough room for all the characters in the string, -plus a terminating -.Dv NUL -character. -The usual skip of leading white space is suppressed. -The string is to be made up of characters in -(or not in) -a particular set; -the set is defined by the characters between the open bracket -.Cm [ -character -and a close bracket -.Cm ] -character. -The set -.Em excludes -those characters -if the first character after the open bracket is a circumflex -.Cm ^ . -To include a close bracket in the set, -make it the first character after the open bracket -or the circumflex; -any other position will end the set. -The hyphen character -.Cm - -is also special; -when placed between two other characters, -it adds all intervening characters to the set. -To include a hyphen, -make it the last character before the final close bracket. -For instance, -.Ql [^]0-9-] -means the set `everything except close bracket, zero through nine, -and hyphen'. -The string ends with the appearance of a character not in the -(or, with a circumflex, in) set -or when the field width runs out. -.It Cm p -Matches a pointer value (as printed by -.Ql %p -in -.Xr printf 3 ) ; -the next pointer must be a pointer to -.Em void . -.It Cm n -Nothing is expected; -instead, the number of characters consumed thus far from the input -is stored through the next pointer, -which must be a pointer to -.Em int . -This is -.Em not -a conversion, although it can be suppressed with the -.Cm * -flag. -.El -.Pp -For backwards compatibility, -other conversion characters (except -.Ql \e0 ) -are taken as if they were -.Ql %d -or, if uppercase, -.Ql %ld , -and a `conversion' of -.Ql %\e0 -causes an immediate return of -.Dv EOF . -The -.Cm F -and -.Cm X -conversions will be changed in the future -to conform to the -.Tn ANSI -C standard, -after which they will act like -.Cm f -and -.Cm x -respectively. -.Pp -.Sh RETURN VALUES -These -functions -return -the number of input items assigned, which can be fewer than provided -for, or even zero, in the event of a matching failure. -Zero -indicates that, while there was input available, -no conversions were assigned; -typically this is due to an invalid input character, -such as an alphabetic character for a -.Ql %d -conversion. -The value -.Dv EOF -is returned if an input failure occurs before any conversion such as an -end-of-file occurs. If an error or end-of-file occurs after conversion -has begun, -the number of conversions which were successfully completed is returned. -.Sh SEE ALSO -.Xr getc 3 , -.Xr printf 3 , -.Xr strtod 3 , -.Xr strtol 3 , -.Xr strtoul 3 -.Sh STANDARDS -The functions -.Fn fscanf , -.Fn scanf , -and -.Fn sscanf -conform to -.St -ansiC . -.Sh HISTORY -The functions -.Fn vscanf , -.Fn vsscanf -and -.Fn vfscanf -are new to this release. -.Sh BUGS -The current situation with -.Cm %F -and -.Cm %X -conversions is unfortunate. -.Pp -All of the backwards compatibility formats will be removed in the future. -.Pp -Numerical strings are truncated to 512 characters; for example, -.Cm %f -and -.Cm %d -are implicitly -.Cm %512f -and -.Cm %512d . |