summaryrefslogtreecommitdiffstats
path: root/man-pages-posix-2017/man1p/uuencode.1p
diff options
context:
space:
mode:
Diffstat (limited to 'man-pages-posix-2017/man1p/uuencode.1p')
-rw-r--r--man-pages-posix-2017/man1p/uuencode.1p380
1 files changed, 380 insertions, 0 deletions
diff --git a/man-pages-posix-2017/man1p/uuencode.1p b/man-pages-posix-2017/man1p/uuencode.1p
new file mode 100644
index 0000000..0a2f78c
--- /dev/null
+++ b/man-pages-posix-2017/man1p/uuencode.1p
@@ -0,0 +1,380 @@
+'\" et
+.TH UUENCODE "1P" 2017 "IEEE/The Open Group" "POSIX Programmer's Manual"
+.\"
+.SH PROLOG
+This manual page is part of the POSIX Programmer's Manual.
+The Linux implementation of this interface may differ (consult
+the corresponding Linux manual page for details of Linux behavior),
+or the interface may not be implemented on Linux.
+.\"
+.SH NAME
+uuencode
+\(em encode a binary file
+.SH SYNOPSIS
+.LP
+.nf
+uuencode \fB[\fR-m\fB] [\fIfile\fB] \fIdecode_pathname\fR
+.fi
+.SH DESCRIPTION
+The
+.IR uuencode
+utility shall write an encoded version of the named input file, or
+standard input if no
+.IR file
+is specified, to standard output. The output shall be encoded using
+one of the algorithms described in the STDOUT section and shall
+include the file access permission bits (in
+.IR chmod
+octal or symbolic notation) of the input file and the
+.IR decode_pathname ,
+for re-creation of the file on another system that conforms to this volume of POSIX.1\(hy2017.
+.SH OPTIONS
+The
+.IR uuencode
+utility shall conform to the Base Definitions volume of POSIX.1\(hy2017,
+.IR "Section 12.2" ", " "Utility Syntax Guidelines".
+.P
+The following option shall be supported by the implementation:
+.IP "\fB\-m\fP" 10
+Encode the output using the MIME Base64 algorithm described in STDOUT.
+If
+.BR \-m
+is not specified, the historical algorithm described in STDOUT shall be
+used.
+.SH OPERANDS
+The following operands shall be supported:
+.IP "\fIdecode_pathname\fR" 10
+.br
+The pathname of the file into which the
+.IR uudecode
+utility shall place the decoded file. Specifying a
+.IR decode_pathname
+operand of
+.BR /dev/stdout
+shall indicate that
+.IR uudecode
+is to use standard output. If there are characters in
+.IR decode_pathname
+that are not in the portable filename character set the results are
+unspecified.
+.IP "\fIfile\fR" 10
+A pathname of the file to be encoded.
+.SH STDIN
+See the INPUT FILES section.
+.SH "INPUT FILES"
+Input files can be files of any type.
+.SH "ENVIRONMENT VARIABLES"
+The following environment variables shall affect the execution of
+.IR uuencode :
+.IP "\fILANG\fP" 10
+Provide a default value for the internationalization variables that are
+unset or null. (See the Base Definitions volume of POSIX.1\(hy2017,
+.IR "Section 8.2" ", " "Internationalization Variables"
+for the precedence of internationalization variables used to determine
+the values of locale categories.)
+.IP "\fILC_ALL\fP" 10
+If set to a non-empty string value, override the values of all the
+other internationalization variables.
+.IP "\fILC_CTYPE\fP" 10
+Determine the locale for the interpretation of sequences of bytes of
+text data as characters (for example, single-byte as opposed to
+multi-byte characters in arguments and input files).
+.IP "\fILC_MESSAGES\fP" 10
+.br
+Determine the locale that should be used to affect the format and
+contents of diagnostic messages written to standard error.
+.IP "\fINLSPATH\fP" 10
+Determine the location of message catalogs for the processing of
+.IR LC_MESSAGES .
+.SH "ASYNCHRONOUS EVENTS"
+Default.
+.SH STDOUT
+.SS "uuencode Base64 Algorithm"
+.P
+The standard output shall be a text file (encoded in the character set
+of the current locale) that begins with the line:
+.sp
+.RS 4
+.nf
+
+"begin-base64 %s %s\en", <\fImode\fR>, <\fIdecode_pathname\fR>
+.fi
+.P
+.RE
+.P
+and ends with the line:
+.sp
+.RS 4
+.nf
+
+"====\en"
+.fi
+.P
+.RE
+.P
+In both cases, the lines shall have no preceding or trailing
+<blank>
+characters.
+.P
+The encoding process represents 24-bit groups of input bits as output
+strings of four encoded characters. Proceeding from left to right, a
+24-bit input group shall be formed by concatenating three 8-bit input
+groups. Each 24-bit input group then shall be treated as four
+concatenated 6-bit groups, each of which shall be translated into a
+single digit in the Base64 alphabet. When encoding a bit stream via the
+Base64 encoding, the bit stream shall be presumed to be ordered with
+the most-significant bit first. That is, the first bit in the stream
+shall be the high-order bit in the first byte, and the eighth bit shall
+be the low-order bit in the first byte, and so on. Each 6-bit group is
+used as an index into an array of 64 printable characters, as shown in
+.IR "Table 4-22, uuencode Base64 Values".
+.sp
+.ce 1
+\fBTable 4-22: uuencode Base64 Values\fR
+.TS
+center box tab(!);
+cB | cB || cB | cB || cB | cB || cB | cB
+n | cf5 || n | cf5 || n | cf5 || n | cf5.
+Value!Encoding!Value!Encoding!Value!Encoding!Value!Encoding
+_
+0!A!17!R!34!i!51!z
+1!B!18!S!35!j!52!0
+2!C!19!T!36!k!53!1
+3!D!20!U!37!l!54!2
+4!E!21!V!38!m!55!3
+5!F!22!W!39!n!56!4
+6!G!23!X!40!o!57!5
+7!H!24!Y!41!p!58!6
+8!I!25!Z!42!q!59!7
+9!J!26!a!43!r!60!8
+10!K!27!b!44!s!61!9
+11!L!28!c!45!t!62!+
+12!M!29!d!46!u!63!/
+13!N!30!e!47!v
+14!O!31!f!48!w!(pad)!\&=
+15!P!32!g!49!x
+16!Q!33!h!50!y
+.TE
+.P
+The character referenced by the index shall be placed in the output
+string.
+.P
+The output stream (encoded bytes) shall be represented in lines of no
+more than 76 characters each. All line breaks or other characters not
+found in the table shall be ignored by decoding software (see
+.IR "\fIuudecode\fR\^").
+.P
+Special processing shall be performed if fewer than 24 bits are
+available at the end of a message or encapsulated part of a message. A
+full encoding quantum shall always be completed at the end of a
+message. When fewer than 24 input bits are available in an input group,
+zero bits shall be added (on the right) to form an integral number of
+6-bit groups. Output character positions that are not required to
+represent actual input data shall be set to the character
+.BR '=' .
+Since all Base64 input is an integral number of octets, only the
+following cases can arise:
+.IP " 1." 4
+The final quantum of encoding input is an integral multiple of 24 bits;
+here, the final unit of encoded output shall be an integral multiple of
+4 characters with no
+.BR '='
+padding.
+.IP " 2." 4
+The final quantum of encoding input is exactly 16 bits; here, the final
+unit of encoded output shall be three characters followed by one
+.BR '='
+padding character.
+.IP " 3." 4
+The final quantum of encoding input is exactly 8 bits; here, the final
+unit of encoded output shall be two characters followed by two
+.BR '='
+padding characters.
+.P
+A terminating
+.BR \(dq====\(dq
+evaluates to nothing and denotes the end of the encoded data.
+.SS "uuencode Historical Algorithm"
+.P
+The standard output shall be a text file (encoded in the character set
+of the current locale) that begins with the line:
+.sp
+.RS 4
+.nf
+
+"begin %s %s\en" <\fImode\fR>, <\fIdecode_pathname\fR>
+.fi
+.P
+.RE
+.P
+and ends with the line:
+.sp
+.RS 4
+.nf
+
+"end\en"
+.fi
+.P
+.RE
+.P
+In both cases, the lines shall have no preceding or trailing
+<blank>
+characters.
+.P
+The algorithm that shall be used for lines in between
+.BR begin
+and
+.BR end
+takes three octets as input and writes four characters of output by
+splitting the input at six-bit intervals into four octets, containing
+data in the lower six bits only. These octets shall be converted to
+characters by adding a value of 0x20 to each octet, so that each octet
+is in the range [0x20,0x5f], and then it shall be assumed to represent
+a printable character in the ISO/IEC\ 646:\|1991 standard encoded character set. It then
+shall be translated into the corresponding character codes for the
+codeset in use in the current locale. (For example, the octet 0x41,
+representing
+.BR 'A' ,
+would be translated to
+.BR 'A'
+in the current codeset, such as 0xc1 if it were EBCDIC.)
+.P
+Where the bits of two octets are combined, the least significant bits
+of the first octet shall be shifted left and combined with the most
+significant bits of the second octet shifted right. Thus the three
+octets
+.IR A ,
+.IR B ,
+.IR C
+shall be converted into the four octets:
+.sp
+.RS 4
+.nf
+
+0x20 + (( A >> 2 ) & 0x3F)
+0x20 + (((A << 4) |\h\(aq\n(XX\(aq ((B >> 4) & 0xF)) & 0x3F)
+0x20 + (((B << 2) |\h\(aq\n(XX\(aq ((C >> 6) & 0x3)) & 0x3F)
+0x20 + (( C ) & 0x3F)
+.fi
+.P
+.RE
+.P
+These octets then shall be translated into the local character set.
+.P
+Each encoded line contains a length character, equal to the number of
+characters to be decoded plus 0x20 translated to the local character
+set as described above, followed by the encoded characters. The
+maximum number of octets to be encoded on each line shall be 45.
+.SH STDERR
+The standard error shall be used only for diagnostic messages.
+.SH "OUTPUT FILES"
+None.
+.SH "EXTENDED DESCRIPTION"
+None.
+.SH "EXIT STATUS"
+The following exit values shall be returned:
+.IP "\00" 6
+Successful completion.
+.IP >0 6
+An error occurred.
+.SH "CONSEQUENCES OF ERRORS"
+Default.
+.LP
+.IR "The following sections are informative."
+.SH "APPLICATION USAGE"
+The file is expanded by 35 percent (each three octets become four, plus
+control information) causing it to take longer to transmit.
+.P
+Since this utility is intended to create files to be used for data
+interchange between systems with possibly different codesets, and to
+represent binary data as a text file, the ISO/IEC\ 646:\|1991 standard was chosen for a
+midpoint in the algorithm as a known reference point. The output from
+.IR uuencode
+is a text file on the local system. If the output were in the ISO/IEC\ 646:\|1991 standard
+codeset, it might not be a text file (at least because the
+<newline>
+characters might not match), and the goal of creating a text file would
+be defeated. If this text file was then carried to another machine with
+the same codeset, it would be perfectly compatible with that system's
+.IR uudecode .
+If it was transmitted over a mail system or sent to a machine with a
+different codeset, it is assumed that, as for every other text file,
+some translation mechanism would convert it (by the time it reached a
+user on the other system) into an appropriate codeset. This
+translation only makes sense from the local codeset, not if the file
+has been put into a ISO/IEC\ 646:\|1991 standard representation first. Similarly, files
+processed by
+.IR uuencode
+can be placed in
+.IR pax
+archives, intermixed with other text files in the same codeset.
+.SH EXAMPLES
+None.
+.SH RATIONALE
+A new algorithm was added at the request of the international community
+to parallel work in RFC\ 2045 (MIME). As with the historical
+.IR uuencode
+format, the Base64 Content-Transfer-Encoding is designed to represent
+arbitrary sequences of octets in a form that is not humanly readable. A
+65-character subset of the ISO/IEC\ 646:\|1991 standard is used, enabling 6 bits to be
+represented per printable character. (The extra 65th character,
+.BR '=' ,
+is used to signify a special processing function.)
+.P
+This subset has the important property that it is represented
+identically in all versions of the ISO/IEC\ 646:\|1991 standard, including US ASCII, and all
+characters in the subset are also represented identically in all
+versions of EBCDIC. The historical
+.IR uuencode
+algorithm does not share this property, which is the reason that a
+second algorithm was added to the ISO\ POSIX\(hy2 standard.
+.P
+The string
+.BR \(dq====\(dq
+was used for the termination instead of the end used in the original
+format because the latter is a string that could be valid encoded
+input.
+.P
+In an early draft, the
+.BR \-m
+option was named
+.BR \-b
+(for Base64), but it was renamed to reflect its relationship to the
+RFC\ 2045. A
+.BR \-u
+was also present to invoke the default algorithm, but since this was
+not historical practice, it was omitted as being unnecessary.
+.P
+See the RATIONALE section in
+.IR "\fIuudecode\fR\^"
+for the derivation of the
+.BR /dev/stdout
+symbol.
+.SH "FUTURE DIRECTIONS"
+None.
+.SH "SEE ALSO"
+.IR "\fIchmod\fR\^",
+.IR "\fImailx\fR\^",
+.IR "\fIuudecode\fR\^"
+.P
+The Base Definitions volume of POSIX.1\(hy2017,
+.IR "Chapter 8" ", " "Environment Variables",
+.IR "Section 12.2" ", " "Utility Syntax Guidelines"
+.\"
+.SH COPYRIGHT
+Portions of this text are reprinted and reproduced in electronic form
+from IEEE Std 1003.1-2017, Standard for Information Technology
+-- Portable Operating System Interface (POSIX), The Open Group Base
+Specifications Issue 7, 2018 Edition,
+Copyright (C) 2018 by the Institute of
+Electrical and Electronics Engineers, Inc and The Open Group.
+In the event of any discrepancy between this version and the original IEEE and
+The Open Group Standard, the original IEEE and The Open Group Standard
+is the referee document. The original Standard can be obtained online at
+http://www.opengroup.org/unix/online.html .
+.PP
+Any typographical or formatting errors that appear
+in this page are most likely
+to have been introduced during the conversion of the source files to
+man page format. To report such errors, see
+https://www.kernel.org/doc/man-pages/reporting_bugs.html .