February 6, 1999 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

```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'') . 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.