Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ l64a(3C) — HP-UX 10.20

Media Vault

Software Library

Restoration Projects

Artifacts Sought

a64l(3C)

NAME

a64l(), l64a(), l64a_r() − convert between long integer and base-64 ASCII string

SYNOPSIS

#include <stdlib.h>

long int a64l(const char *s);

char *l64a(long int l);

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

DESCRIPTION

These functions are used to maintain numbers stored in base-64 ASCII characters.  This is a notation by which long integers can be represented by up to six characters; each character represents a "digit" in a radix-64 notation. 

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

The leftmost character is the least significant digit.  For example,

a0 = (38 x 640) + (2 x 641) = 166

a64l() takes a pointer to a null-terminated base-64 representation and returns a corresponding long value.  If the string pointed to by s contains more than six characters, a64l() uses the first six. 

l64a() takes a long argument and returns a pointer to the corresponding base-64 representation.  If the argument is 0, l64a() returns a pointer to a null string. 

Reentrant Interfaces

l64a_r() passes the result string back in the supplied buffer.  If the buffer is of insufficient length, -1 is returned.  If the operation is successful, 0 is returned. 

WARNINGS

The value returned by l64a() is a pointer into a static buffer, the contents of which are overwritten by each call.  Thus, l64a() is unsafe in multi-thread applications.  l64a_r() is MT-Safe and should be used instead. 

STANDARDS CONFORMANCE

a64l(): SVID2, SVID3

l64a(): SVID2, SVID3

Hewlett-Packard Company  —  HP-UX Release 10.20:  July 1996

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026