A64L(3)

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 7.1