BYTES_BY_PREFIX(3)

NAME
bytes_by_prefix - convert a string to a int byte count lbytes_by_prefix - convert a string to a long byte count llbytes_by_prefix - convert a string to a long long byte count

SYNOPSIS
int bytes_by_prefix(char *str);
long lbytes_by_prefix(char *str);
long long llbytes_by_prefix(char *str);

DESCRIPTION
bytes_by_prefix(), lbytes_by_prefix(), and llbytes_by_prefix() converts str to an integer, long, or long long byte count. str is an floating point number optionally followed by a single character multiplier. Currently the following multipliers are supported:

    Char  Meaning       Multiplier
    ----  ---------     --------------------------------
    b     Blocks        BSIZE or UBSIZE
    k     Kilobytes     2^10 (1024)
    K     Kilowords     2^10 (1024) * sizeof(long)
    m     Megabytes     2^20 (1048576)
    M     Megawords     2^20 (1048576) * sizeof(long)
    g     Gigabytes     2^30 (1073741824)
    G     Gigawords     2^30 (1073741824) * sizeof(long)

str is interpreted as floating point number (base 10). When using llbytes_by_prefix(), the uppercase suffix will result in multiplying by the size of a (long long) or 8.

RETURNS
-1 if the integer portion of str is invalid, if an unsupported multiplier is supplied, or if str has extra leading or trailing characters. If str contains a negative number, the return value will be negative.

EXAMPLES
bytes_by_prefix("1000")
    Returns 1000
bytes_by_prefix("5b")
    Returns 5 * BSIZE.
bytes_by_prefix("1.5m")
    Returns 1.5 * 1048576 or 1572864

LIMITATIONS
bytes_by_prefix() and lbytes_by_prefix() when compiled as a 32 bit IRIX binary can only return a max number of 2g (2147483647). However, lbytes_by_prefix() is not limited by the 2g limit when compiled as 64 bit binary, where bytes_by_prefix() still is limited. Note that the size of long will vary depending how if compiled as a 32 or 64 bit binary. The size of a long long is always 8. Also note that on a traditional CRAY system, a block is 4096 bytes, where on most IRIX systems a block is 1024 bytes.