The pack function combines zero or more the objects (represented
by the ellipses above) into a binary string acording to the format
string fmt.
The format string consists of one or more data-type specification
characters, and each may be followed by an optional decimal length
specifier. Specifically, the data-types are specified according to
the following table:
c char
C unsigned char
h short
H unsigned short
i int
I unsigned int
l long
L unsigned long
j 16 bit int
J 16 unsigned int
k 32 bit int
K 32 bit unsigned int
f float
d double
F 32 bit float
D 64 bit float
s character string, null padded
S character string, space padded
x a null pad character
A decimal length specifier may follow the data-type specifier. With
the exception of the s and S specifiers, the length
specifier indicates how many objects of that data type are to be
packed or unpacked from the string. When used with the s or
S specifiers, it indicates the field width to be used. If the
length specifier is not present, the length defaults to one.
With the exception of c, C, s, S, and
x, each of these may be prefixed by a character that indicates
the byte-order of the object:
> big-endian order (network order)
< little-endian order
= native byte-order
The default is to use native byte order.
When unpacking via the unpack function, if the length
specifier is greater than one, then an array of that length will be
returned. In addition, trailing whitespace and null character are
stripped when unpacking an object given by the S specifier.