summaryrefslogtreecommitdiffstats
path: root/man-pages-posix-2003/man1p/uuencode.1p
diff options
context:
space:
mode:
Diffstat (limited to 'man-pages-posix-2003/man1p/uuencode.1p')
-rw-r--r--man-pages-posix-2003/man1p/uuencode.1p357
1 files changed, 357 insertions, 0 deletions
diff --git a/man-pages-posix-2003/man1p/uuencode.1p b/man-pages-posix-2003/man1p/uuencode.1p
new file mode 100644
index 0000000..4cb4c8b
--- /dev/null
+++ b/man-pages-posix-2003/man1p/uuencode.1p
@@ -0,0 +1,357 @@
+.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved
+.TH "UUENCODE" 1P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
+.\" uuencode
+.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 \- encode a binary file
+.SH SYNOPSIS
+.LP
+\fBuuencode\fP \fB[\fP\fB-m\fP\fB][\fP\fIfile\fP\fB]\fP \fIdecode_pathname\fP\fB\fP
+.SH DESCRIPTION
+.LP
+The \fIuuencode\fP utility shall write an encoded version of the named
+input file, or standard input if no \fIfile\fP 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 \fIchmod\fP octal or symbolic
+notation) of the
+input file and the \fIdecode_pathname\fP, for re-creation of the file
+on another system that conforms to this volume of
+IEEE\ Std\ 1003.1-2001.
+.SH OPTIONS
+.LP
+The \fIuuencode\fP utility shall conform to the Base Definitions volume
+of IEEE\ Std\ 1003.1-2001, Section 12.2, Utility Syntax Guidelines.
+.LP
+The following option shall be supported by the implementation:
+.TP 7
+\fB-m\fP
+Encode the output using the MIME Base64 algorithm described in STDOUT.
+If \fB-m\fP is not specified, the historical algorithm
+described in STDOUT shall be used.
+.sp
+.SH OPERANDS
+.LP
+The following operands shall be supported:
+.TP 7
+\fIdecode_pathname\fP
+.sp
+The pathname of the file into which the \fIuudecode\fP utility shall
+place the decoded
+file. Specifying a \fIdecode_pathname\fP operand of \fB/dev/stdout\fP
+shall indicate that \fIuudecode\fP is to use standard output. If there
+are characters in \fIdecode_pathname\fP that
+are not in the portable filename character set the results are unspecified.
+.TP 7
+\fIfile\fP
+A pathname of the file to be encoded.
+.sp
+.SH STDIN
+.LP
+See the INPUT FILES section.
+.SH INPUT FILES
+.LP
+Input files can be files of any type.
+.SH ENVIRONMENT VARIABLES
+.LP
+The following environment variables shall affect the execution of
+\fIuuencode\fP:
+.TP 7
+\fILANG\fP
+Provide a default value for the internationalization variables that
+are unset or null. (See the Base Definitions volume of
+IEEE\ Std\ 1003.1-2001, Section 8.2, Internationalization Variables
+for
+the precedence of internationalization variables used to determine
+the values of locale categories.)
+.TP 7
+\fILC_ALL\fP
+If set to a non-empty string value, override the values of all the
+other internationalization variables.
+.TP 7
+\fILC_CTYPE\fP
+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).
+.TP 7
+\fILC_MESSAGES\fP
+Determine the locale that should be used to affect the format and
+contents of diagnostic messages written to standard
+error.
+.TP 7
+\fINLSPATH\fP
+Determine the location of message catalogs for the processing of \fILC_MESSAGES
+\&.\fP
+.sp
+.SH ASYNCHRONOUS EVENTS
+.LP
+Default.
+.SH STDOUT
+.SS uuencode Base64 Algorithm
+.LP
+The standard output shall be a text file (encoded in the character
+set of the current locale) that begins with the line:
+.sp
+.RS
+.nf
+
+\fB"begin-base64 %s %s\\n", <\fP\fImode\fP\fB>, <\fP\fIdecode_pathname\fP\fB>
+\fP
+.fi
+.RE
+.LP
+and ends with the line:
+.sp
+.RS
+.nf
+
+\fB"====\\n"
+\fP
+.fi
+.RE
+.LP
+In both cases, the lines shall have no preceding or trailing <blank>s.
+.LP
+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 uuencode Base64
+Values .
+.sp
+.ce 1
+\fBTable: uuencode Base64 Values\fP
+.TS C
+center; l1 l1 l1 l1 l1 l1 l1 l1 l1 l1 l.
+\fBValue\fP \fBEncoding\fP Value \fBEncoding\fP \fBValue\fP Encoding \fBValue\fP \fBEncoding\fP \ \fB\ \fP \fB\ \fP
+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
+.LP
+The character referenced by the index shall be placed in the output
+string.
+.LP
+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 \fIuudecode\fP ).
+.LP
+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 \fB'='\fP . 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 \fB'='\fP padding.
+.LP
+.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 \fB'='\fP padding character.
+.LP
+.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 \fB'='\fP padding characters.
+.LP
+.LP
+A terminating \fB"===="\fP evaluates to nothing and denotes the end
+of the encoded data.
+.SS uuencode Historical Algorithm
+.LP
+The standard output shall be a text file (encoded in the character
+set of the current locale) that begins with the line:
+.sp
+.RS
+.nf
+
+\fB"begin %s %s\\n" <\fP\fImode\fP\fB>, <\fP\fIdecode_pathname\fP\fB>
+\fP
+.fi
+.RE
+.LP
+and ends with the line:
+.sp
+.RS
+.nf
+
+\fB"end\\n"
+\fP
+.fi
+.RE
+.LP
+In both cases, the lines shall have no preceding or trailing <blank>s.
+.LP
+The algorithm that shall be used for lines in between \fBbegin\fP
+and \fBend\fP 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 \fB'A'\fP, would be translated
+to \fB'A'\fP in the current codeset, such as 0xc1
+if it were EBCDIC.)
+.LP
+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 \fIA\fP, \fIB\fP, \fIC\fP shall be converted
+into the four octets:
+.sp
+.RS
+.nf
+
+\fB0x20 + (( A >> 2 ) & 0x3F)
+0x20 + (((A << 4) | ((B >> 4) & 0xF)) & 0x3F)
+0x20 + (((B << 2) | ((C >> 6) & 0x3)) & 0x3F)
+0x20 + (( C ) & 0x3F)
+\fP
+.fi
+.RE
+.LP
+These octets then shall be translated into the local character set.
+.LP
+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
+.LP
+The standard error shall be used only for diagnostic messages.
+.SH OUTPUT FILES
+.LP
+None.
+.SH EXTENDED DESCRIPTION
+.LP
+None.
+.SH EXIT STATUS
+.LP
+The following exit values shall be returned:
+.TP 7
+\ 0
+Successful completion.
+.TP 7
+>0
+An error occurred.
+.sp
+.SH CONSEQUENCES OF ERRORS
+.LP
+Default.
+.LP
+\fIThe following sections are informative.\fP
+.SH APPLICATION USAGE
+.LP
+The file is expanded by 35 percent (each three octets become four,
+plus control information) causing it to take longer to
+transmit.
+.LP
+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 \fIuuencode\fP 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>s 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 \fIuudecode\fP. 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 \fIuuencode\fP
+can be placed in \fIpax\fP
+archives, intermixed with other text files in the same codeset.
+.SH EXAMPLES
+.LP
+None.
+.SH RATIONALE
+.LP
+A new algorithm was added at the request of the international community
+to parallel work in RFC\ 2045 (MIME). As with the
+historical \fIuuencode\fP 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, \fB'='\fP,
+is used to signify a special processing
+function.)
+.LP
+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
+\fIuuencode\fP algorithm does not share this property, which is the
+reason that a second algorithm was added to the
+ISO\ POSIX-2 standard.
+.LP
+The string \fB"===="\fP 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.
+.LP
+In an early draft, the \fB-m\fP option was named \fB-b\fP (for Base64),
+but it was renamed to reflect its relationship to the
+RFC\ 2045. A \fB-u\fP was also present to invoke the default algorithm,
+but since this was not historical practice, it was
+omitted as being unnecessary.
+.LP
+See the RATIONALE section in \fIuudecode\fP for the derivation of
+the \fB/dev/stdout\fP
+symbol.
+.SH FUTURE DIRECTIONS
+.LP
+None.
+.SH SEE ALSO
+.LP
+\fIchmod\fP(), \fImailx\fP, \fIuudecode\fP
+.SH COPYRIGHT
+Portions of this text are reprinted and reproduced in electronic form
+from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
+-- Portable Operating System Interface (POSIX), The Open Group Base
+Specifications Issue 6, Copyright (C) 2001-2003 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 .