A64L(3)

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

LIBRARY
libc

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 xpg4.2 and p1003.1-2004. The l64a_r() function conforms to 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.