STRSUFTOLL(3) | Library Functions Manual | STRSUFTOLL(3) |
strsuftoll
, strsuftollx
—
#include <stdlib.h>
long long
strsuftoll
(const
char *desc, const char
*val, long long
min, long long
max);
long long
strsuftollx
(const
char *desc, const char
*val, long long
min, long long max,
char *errbuf,
size_t errbuflen);
strsuftoll
() and
strsuftollx
() convert val into a
number of type long long, checking that the result is
not smaller than min or larger than
max. Two or more decimal numbers may be separated by an
“x” to indicate a product.
Each decimal number may have one of the following optional suffixes:
In the case of an error (range overflow or an invalid number),
strsuftollx
() places an error message into
errbuf (which is errbuflen bytes
long) and returns 0, and strsuftoll
() displays that
error and terminates the process. The parameter desc
is used to construct errbuf.
Neither desc nor val
may be NULL
.
strsuftoll
() and
strsuftollx
() return either the result of the
conversion, unless the value overflows or is not a number; in the latter case,
strsuftoll
() displays an error message and terminates
the process with exit code EXIT_FAILURE
, and
strsuftollx
() returns with 0 and
errbuf contains a non-empty error message.
ERANGE
]strsuftoll
() nor
strsuftollx
() fail gracefully in case of invalid,
NULL
, pointers.strsuftollx
() function is prone to buffer
overflows if used incorrectly. Arguably only
strsuftoll
() should be exposed to a caller.December 14, 2010 | NetBSD 9.0 |