| STRSUFTOLL(3) | Library Functions Manual | STRSUFTOLL(3) |
strsuftoll,
strsuftollx — convert a
string to a long long, with suffix parsing
Standard C Library (libc, -lc)
#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);
The functions
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.
The functions 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]At least few limitations should be mentioned:
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 11.0 |