Warning: Attempt to read property "date" on null in /usr/local/www/websvn.planix.org/blame.php on line 247

Warning: Attempt to read property "msg" on null in /usr/local/www/websvn.planix.org/blame.php on line 247
WebSVN – planix.SVN – Blame – /os/branches/planix-v0/sys/man/2/encode – Rev 2

Subversion Repositories planix.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
.TH ENCODE 2
2
.EQ
3
delim $$
4
.EN
5
.SH NAME
6
dec64, enc64, dec32, enc32, dec16, enc16, encodefmt \- encoding byte arrays as strings
7
.SH SYNOPSIS
8
.B #include <u.h>
9
.br
10
.B #include <libc.h>
11
.PP
12
.B
13
int	dec64(uchar *out, int lim, char *in, int n)
14
.PP
15
.B
16
int	enc64(char *out, int lim, uchar *in, int n)
17
.PP
18
.B
19
int	dec32(uchar *out, int lim, char *in, int n)
20
.PP
21
.B
22
int	enc32(char *out, int lim, uchar *in, int n)
23
.PP
24
.B
25
int	dec16(uchar *out, int lim, char *in, int n)
26
.PP
27
.B
28
int	enc16(char *out, int lim, uchar *in, int n)
29
.PP
30
.B
31
int	encodefmt(Fmt*)
32
.SH DESCRIPTION
33
.IR Enc16 ,
34
.I enc32
35
and
36
.I enc64
37
create null terminated strings.  They return the size of the
38
encoded string (without the null) or -1 if the encoding fails.
39
The encoding fails if
40
.IR lim ,
41
the length of the output buffer, is too small.
42
They require
43
$2 n + 1$, ${ 8 n + 4 } over 5 + 1$ and
44
$4 { { n + 2 } over 3 } + 1$ bytes,
45
respectively.
46
.PP
47
.IR Dec16 ,
48
.I dec32
49
and
50
.I dec64
51
return the number of bytes decoded or -1 if the decoding fails.
52
The decoding fails if the output buffer is not large enough or,
53
for base 32, if the input buffer length is not a multiple
54
of 8.
55
.PP
56
.I Encodefmt
57
can be used with
58
.IR fmtinstall (2)
59
and
60
.IR print (2)
61
to print encoded representations of byte arrays.
62
The verbs are
63
.TP 3
64
.B H
65
base 16 (i.e. hexadecimal). The default encoding is
66
in upper case.  The
67
.B l
68
flag forces lower case.
69
.TP
70
.B <
71
base 32
72
.TP
73
.B [
74
base 64 (same as MIME)
75
.PD
76
.PP
77
The length of the array is specified as
78
.IR f2 .
79
For example, to display a 15 byte array as hex:
80
.IP
81
.EX
82
char x[15];
83
 
84
fmtinstall('H', encodefmt);
85
print("%.*H\\n", sizeof x, x);
86
.EE
87
.SH SOURCE
88
.B /sys/src/libc/port/u[136][246].c