A64L(3) | Library Functions Manual | A64L(3)

# NAME

`a64l`, `l64a`, `l64a_r` —
convert between a long integer and a base-64 ASCII string

# LIBRARY

Standard C Library (libc, -lc)

# SYNOPSIS

`#include <stdlib.h>`

long
`a64l`(const char *s);

char *
`l64a`(long int l);

int
`l64a_r`(long int l, char *buffer, int buflen);

# DESCRIPTION

The `a64l`() and `l64a`() functions convert between a long integer and its base-64 ASCII string representation.

The characters used to represent ``digits'' are `.' for 0, `/' for 1, `0' - `9' for 2 - 11, `A' - `Z' for 12 - 37, and `a' - `z' for 38 - 63.

`a64l`() takes a pointer to a NUL-terminated base-64 ASCII string representation, s, and returns the corresponding long integer value.

`l64a`() takes a long integer value, l, and returns a pointer to the corresponding NUL-terminated base-64 ASCII string representation.

`l64a_r`() performs a conversion identical to that of `l64a`() and stores the resulting representation in the memory area pointed to by buffer, consuming at most buflen characters including the terminating NUL character.

# RETURN VALUES

On successful completion, `a64l`() returns the long integer value corresponding to the input string. If the string pointed to by s is an empty string, `a64l`() returns a value of 0L.

`l64a`() returns a pointer to the base-64 ASCII string representation corresponding to the input value. If l is 0L, `l64a`() returns a pointer to an empty string.

On successful completion, `l64a_r`() returns 0; if buffer is of insufficient length, -1 is returned.

# SEE ALSO

strtol(3)

# STANDARDS

The `a64l`() and `l64a`() functions conform to X/Open Portability Guide Issue 4, Version 2 (“XPG4.2”) and IEEE Std 1003.1-2004 (“POSIX.1”). The `l64a_r`() function conforms to System V Interface Definition, Fourth Edition (“SVID4”), Multithreading Extension.

# BUGS

The `l64a`() function is not reentrant. The value returned by it points into a static buffer area; subsequent calls to `la64a`() may overwrite this buffer. In multi-threaded applications, `l64a_r`() should be used instead.

May 6, 2010 | NetBSD 9.5