NAME

strsuftoll, strsuftollx - convert a string to a long long, with suffix parsing

LIBRARY

Standard C Library (libc, -lc)

SYNOPSIS



long long strsuftoll(const char *desc, const char *val)long long minlong long max

long long strsuftollx(const char *desc, const char *vallong long minlong long max, char *errbuf, size_t errbuflen)

DESCRIPTION

The functions strsuftoll() and strsuftollx() convert val into a long long number, 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:
b
Block; multiply by 512
k
Kibi; multiply by 1024 (1 KiB)
m
Mebi; multiply by 1048576 (1 MiB)
g
Gibi; multiply by 1073741824 (1 GiB)
t
Tebi; multiply by 1099511627776 (1 TiB)
w
Word; multiply by the number of bytes in an integer

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.

RETURN VALUES

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 1, and strsuftollx() returns with 0 and errbuf contains a non-empty error message.

ERRORS

[ERANGE]
The given string was out of range; the value converted has been clamped.

SEE ALSO

errx(3), strtoll(3)

BUGS

Ignores the current locale.