The uuencode utility translates binary files into text files consisting entirely of printable characters. These text files have the following format:
begin mode pathname lines of encoded text . . . end
where mode (in the header line) is the permission mode for the encoded file (in octal, as described in the chmod reference page) and pathname is the name to be given to the decoded file created by uudecode. When pathname begins with a tilde (~), the first slash-separated component is expanded to that user's home directory, in the same way that sh or csh expands such path names.
The lines of encoded text have a maximum length of 62 characters (including the newline). Each line begins with a single character indicating the number of bytes (0 to 45) encoded in the rest of that line. The character is determined by using the byte count as an offset (in the ASCII character set) from the space character (octal 040, decimal 32). For example, a line beginning with M encodes 45 bytes (M has a decimal value of 77 and 77-32=45).
Within each encoded text line, 4 characters represent 3 bytes from the original file (encoded at 6 bits per character). The value of these 6 bits is used as an offset to the space character (in the ASCII character set) to determine the encoded character. The last line of encoded text may be shorter than the usual 62 characters. If the byte size of the file being encoded is not a multiple of three, extra garbage is included to make the character count in the encoded file a multiple of 4. The encoded text is terminated with a line that has a count of zero, that is, the line contains a single ASCII space.
Finally, the encoded file comes to a close with a trailer line consisting of the word end on a line by itself.
PTC MKS Toolkit for Power Users
PTC MKS Toolkit for System Administrators
PTC MKS Toolkit for Developers
PTC MKS Toolkit for Interoperability
PTC MKS Toolkit for Professional Developers
PTC MKS Toolkit for Enterprise Developers
PTC MKS Toolkit for Enterprise Developers 64-Bit Edition
PTC MKS Toolkit 10.0 Documentation Build 6.