Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

uuencode(5) [netbsd man page]

UUENCODE(5)						      BSD File Formats Manual						       UUENCODE(5)

NAME
uuencode -- format of an encoded uuencode file DESCRIPTION
Files output by uuencode(1) consist of a header line, followed by a number of body lines, and a trailer line. The uudecode(1) command will ignore any lines preceding the header or following the trailer. Lines preceding a header must not, of course, look like a header. The header line starts with the word ``begin'', a space, a file mode (in octal), a space, and finally a string which names the file being encoded. The central engine of uuencode(1) is a six-bit encoding function which outputs an ASCII character. The six bits to be encoded are treated as a small integer and added with the ASCII value for the space character (octal 40). The result is a printable ASCII character. In the case where all six bits to be encoded are zero, the ASCII backquote character ` (octal 140) is emitted instead of what would normally be a space. The body of an encoded file consists of one or more lines, each of which may be a maximum of 86 characters long (including the trailing new- line). Each line represents an encoded chunk of data from the input file and begins with a byte count, followed by encoded bytes, followed by a newline. The byte count is a six-bit integer encoded with the above function, representing the number of bytes encoded in the rest of the line. The method used to encode the data expands its size by 133% (described below). Therefore it is important to note that the byte count describes the size of the chunk of data before it is encoded, not afterwards. The six bit size of this number effectively limits the number of bytes that can be encoded in each line to a maximum of 63. While uuencode(1) will not encode more than 45 bytes per line, uudecode(1) will toler- ate the maximum line size. The remaining characters in the line represent the data of the input file encoded as follows. Input data are broken into groups of three eight-bit bytes, which are then interpreted together as a 24-bit block. The first bit of the block is the highest order bit of the first character, and the last is the lowest order bit of the third character. This block is then broken into four six-bit integers which are encoded one by one starting from the first bit of the block. The result is a four character ASCII string for every three bytes of input data. Encoded lines of data continue in this manner until the input file is exhausted. The end of the body is signaled by an encoded line with a byte count of zero (the ASCII backquote character `). Obviously, not every input file will be a multiple of three bytes in size. In these cases, uuencode(1) will pad the remaining one or two bytes of data with garbage bytes until a three byte group is created. The byte count in a line containing garbage padding will reflect the actual number of bytes encoded, making it possible to convey how many bytes are garbage. The trailer line consists of ``end'' on a line by itself. SEE ALSO
mail(1), uucp(1), uudecode(1), uuencode(1), ascii(7) HISTORY
The uuencode file format appeared in 4.0BSD. BUGS
The interpretation of the uuencode format relies on properties of the ASCII character set and may not work correctly on non-ASCII systems. BSD
April 9, 1997 BSD

Check Out this Related Man Page

uuencode(5)							File Formats Manual						       uuencode(5)

NAME
uuencode file format DESCRIPTION
The command generates files in a format that allows them to be successfully transferred by systems which strip the high bit from an 8-bit byte. decodes uuencoded files. The uuencode file format consists of three sections: header, body, and trailer. The header is a line is of the form: begin 644 "filename.ext" where "644" is a -format permissions byte for the file and "filename.ext" is the name of the encoded file. The body section is the encoded representation of the source file. Three bytes of input file data are encoded into four bytes of output data. The 24 input bits are divided up into four pieces of six bits each. The integer value 32 (the ASCII value for the space character) is added to each of these pieces to move them outside of the range of control characters. To avoid using the space character in the encoding, pieces with value zero are encoded using backquote (ASCII value 96) instead of zero. The resulting character is one of the this set (ASCII values 96,33-95): A line itself contains three segments: a length character (encoded using the "add a space" algorithm described above), the body of the line, typically (although not required to be) 60 output characters long, representing 45 input bytes, and (of course) a linefeed. The length character specifies the number of valid input bytes on the line (so, for a line which is 60 encoded bytes, the length value would be 45). Decoding programs should decode no further than the specified length on a single line. The trailer, which must exist, consists of a single backquote ("`", ASCII 96) character on a line by itself, directly followed by on a line by itself. is the canonical filename extension for uuencoded files. BUGS
uudecode does not read all permutations of the file format described in this man page. Ancient versions of uuencode used a space character (ASCII 32) in the encoding to represent zero. Many (arguably broken) mailers and trans- port agents stripped, rewrapped, or otherwise mangled this format, so the space was later changed to the backquote, ASCII 96. Decoders may attempt to read the older format if they wish, though it's unlikely to be encountered in practice at this point in time. The uuencode encoding method is highly ASCII-centric. In particular, the character set used doesn't work well on EBCDIC-based systems. (EBCDIC, generally used by IBM mainframes, is an old alternative character encoding; most computers use ASCII instead). Many variants of uuencode on various platforms generate different forms of line checksums, using to represent the checksum one or more encoded characters after the last counted character in a line. Because these formats are different and impossible to distinguish (with certainty), such characters should be ignored by decoding implementations. The uuencode encoding format has no provisions for segmented files. Writers of segmenting utilities should be careful to avoid using char- acter sequences that may naturally occur in the encoding (such as sequences of dashes ("---")) to divide sections. SEE ALSO
The MIME Base64 encoding (documented in RFC 2045) is a consistent, cross-platform-savvy message encoding which should be used in place of UUEncode wherever possible. The Unix-Hater's Handbook (IDG, 1994) identifies the folly of the older zero-encoded-as-space versions of uuencode. Apple Computer, Inc. May, 2001 uuencode(5)
Man Page