Sync usage with man page.
[netbsd-mini2440.git] / lib / libc / stdlib / a64l.3
blobe95a23a872d167e0493651920d272b4a6f7ee468
1 .\" $NetBSD: a64l.3,v 1.8 2003/04/16 13:34:45 wiz Exp $
2 .\"
3 .\" Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
4 .\" All rights reserved.
5 .\"
6 .\" This code is derived from software contributed to The NetBSD Foundation
7 .\" by Klaus Klein.
8 .\"
9 .\" Redistribution and use in source and binary forms, with or without
10 .\" modification, are permitted provided that the following conditions
11 .\" are met:
12 .\" 1. Redistributions of source code must retain the above copyright
13 .\"    notice, this list of conditions and the following disclaimer.
14 .\" 2. Redistributions in binary form must reproduce the above copyright
15 .\"    notice, this list of conditions and the following disclaimer in the
16 .\"    documentation and/or other materials provided with the distribution.
17 .\"
18 .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
19 .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20 .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21 .\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
22 .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23 .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24 .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25 .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26 .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28 .\" POSSIBILITY OF SUCH DAMAGE.
29 .\"
30 .Dd February 6, 1999
31 .Dt A64L 3
32 .Os
33 .Sh NAME
34 .Nm a64l ,
35 .Nm l64a ,
36 .Nm l64a_r
37 .Nd "convert between a long integer and a base-64 ASCII string"
38 .Sh LIBRARY
39 .Lb libc
40 .Sh SYNOPSIS
41 .In stdlib.h
42 .Ft long
43 .Fn a64l "const char *s"
44 .Ft char *
45 .Fn l64a "long int l"
46 .Ft int
47 .Fn l64a_r "long int l" "char *buffer" "int buflen"
48 .Sh DESCRIPTION
49 The
50 .Fn a64l
51 and
52 .Fn l64a
53 functions convert between a long integer and its base-64 ASCII string
54 representation.
55 .Pp
56 The characters used to represent ``digits'' are
57 `.' for 0,
58 `/' for 1,
59 `0' - `9' for 2 - 11,
60 `A' - `Z' for 12 - 37, and
61 `a' - `z' for 38 - 63.
62 .Pp
63 .Fn a64l
64 takes a pointer to a NUL-terminated base-64 ASCII string
65 representation,
66 .Fa s ,
67 and returns the corresponding long integer value.
68 .Pp
69 .Fn l64a
70 takes a long integer value,
71 .Fa l ,
72 and returns a pointer to the corresponding NUL-terminated base-64
73 ASCII string representation.
74 .Pp
75 .Fn l64a_r
76 performs a conversion identical to that of
77 .Fn l64a
78 and stores the resulting representation in the memory area pointed to by
79 .Fa buffer ,
80 consuming at most
81 .Fa buflen
82 characters including the terminating NUL character.
83 .Sh RETURN VALUES
84 On successful completion,
85 .Fn a64l
86 returns the long integer value corresponding to the input string.
87 If the string pointed to by
88 .Fa s
89 is an empty string,
90 .Fn a64l
91 returns a value of 0L.
92 .Pp
93 .Fn l64a
94 returns a pointer to the base-64 ASCII string representation corresponding to
95 the input value.
97 .Fa l
98 is 0L,
99 .Fn l64a
100 returns a pointer to an empty string.
102 On successful completion,
103 .Fn l64a_r
104 returns 0; if
105 .Fa buffer
106 is of insufficient length, -1 is returned.
107 .Sh SEE ALSO
108 .Xr strtol 3
109 .Sh STANDARDS
111 .Fn a64l
113 .Fn l64a
114 functions conform to
115 .St -xpg4.2 .
117 .Fn l64a_r
118 function conforms to
119 .St -svid4 ,
120 Multithreading Extension.
121 .Sh BUGS
123 .Fn l64a
124 function is not reentrant.
125 The value returned by it points into a static buffer area;
126 subsequent calls to
127 .Fn la64a
128 may overwrite this buffer.
129 In multi-threaded applications,
130 .Fn l64a_r
131 should be used instead.