April 12, 2007 STRSUFTOLL 3

### 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 *val`long 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.