diff options
Diffstat (limited to 'man-pages-posix-2003/man1p/cat.1p')
-rw-r--r-- | man-pages-posix-2003/man1p/cat.1p | 281 |
1 files changed, 281 insertions, 0 deletions
diff --git a/man-pages-posix-2003/man1p/cat.1p b/man-pages-posix-2003/man1p/cat.1p new file mode 100644 index 0000000..6bb3242 --- /dev/null +++ b/man-pages-posix-2003/man1p/cat.1p @@ -0,0 +1,281 @@ +.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved +.TH "CAT" 1P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual" +.\" cat +.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 +cat \- concatenate and print files +.SH SYNOPSIS +.LP +\fBcat\fP \fB[\fP\fB-u\fP\fB][\fP\fIfile\fP \fB...\fP\fB]\fP +.SH DESCRIPTION +.LP +The \fIcat\fP utility shall read files in sequence and shall write +their contents to the standard output in the same +sequence. +.SH OPTIONS +.LP +The \fIcat\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: +.TP 7 +\fB-u\fP +Write bytes from the input file to the standard output without delay +as each is read. +.sp +.SH OPERANDS +.LP +The following operand shall be supported: +.TP 7 +\fIfile\fP +A pathname of an input file. If no \fIfile\fP operands are specified, +the standard input shall be used. If a \fIfile\fP is +\fB'-'\fP, the \fIcat\fP utility shall read from the standard input +at that point in the sequence. The \fIcat\fP utility +shall not close and reopen standard input when it is referenced in +this way, but shall accept multiple occurrences of \fB'-'\fP +as a \fIfile\fP operand. +.sp +.SH STDIN +.LP +The standard input shall be used only if no \fIfile\fP operands are +specified, or if a \fIfile\fP operand is \fB'-'\fP . +See the INPUT FILES section. +.SH INPUT FILES +.LP +The input files can be any file type. +.SH ENVIRONMENT VARIABLES +.LP +The following environment variables shall affect the execution of +\fIcat\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). +.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 +.LP +The standard output shall contain the sequence of bytes read from +the input files. Nothing else shall be written to the standard +output. +.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 +All input files were output successfully. +.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 \fB-u\fP option has value in prototyping non-blocking reads from +FIFOs. The intent is to support the following +sequence: +.sp +.RS +.nf + +\fBmkfifo foo +cat -u foo > /dev/tty13 & +cat -u > foo +\fP +.fi +.RE +.LP +It is unspecified whether standard output is or is not buffered in +the default case. This is sometimes of interest when standard +output is associated with a terminal, since buffering may delay the +output. The presence of the \fB-u\fP option guarantees that +unbuffered I/O is available. It is implementation-defined whether +the \fIcat\fP utility buffers output if the \fB-u\fP option is +not specified. Traditionally, the \fB-u\fP option is implemented using +the equivalent of the \fIsetvbuf\fP() function defined in the System +Interfaces volume of +IEEE\ Std\ 1003.1-2001. +.SH EXAMPLES +.LP +The following command: +.sp +.RS +.nf + +\fBcat myfile +\fP +.fi +.RE +.LP +writes the contents of the file \fBmyfile\fP to standard output. +.LP +The following command: +.sp +.RS +.nf + +\fBcat doc1 doc2 > doc.all +\fP +.fi +.RE +.LP +concatenates the files \fBdoc1\fP and \fBdoc2\fP and writes the result +to \fBdoc.all\fP. +.LP +Because of the shell language mechanism used to perform output redirection, +a command such as this: +.sp +.RS +.nf + +\fBcat doc doc.end > doc +\fP +.fi +.RE +.LP +causes the original data in \fBdoc\fP to be lost. +.LP +The command: +.sp +.RS +.nf + +\fBcat start - middle - end > file +\fP +.fi +.RE +.LP +when standard input is a terminal, gets two arbitrary pieces of input +from the terminal with a single invocation of \fIcat\fP. +Note, however, that if standard input is a regular file, this would +be equivalent to the command: +.sp +.RS +.nf + +\fBcat start - middle /dev/null end > file +\fP +.fi +.RE +.LP +because the entire contents of the file would be consumed by \fIcat\fP +the first time \fB'-'\fP was used as a \fIfile\fP +operand and an end-of-file condition would be detected immediately +when \fB'-'\fP was referenced the second time. +.SH RATIONALE +.LP +Historical versions of the \fIcat\fP utility include the options \fB-e\fP, +\fB-t\fP, and \fB-v\fP, which permit the ends of +lines, <tab>s, and invisible characters, respectively, to be rendered +visible in the output. The standard developers omitted +these options because they provide too fine a degree of control over +what is made visible, and similar output can be obtained using +a command such as: +.sp +.RS +.nf + +\fBsed -n -e 's/$/$/' -e l pathname +\fP +.fi +.RE +.LP +The \fB-s\fP option was omitted because it corresponds to different +functions in BSD and System V-based systems. The BSD +\fB-s\fP option to squeeze blank lines can be accomplished by the +shell script shown in the following example: +.sp +.RS +.nf + +\fBsed -n ' +# Write non-empty lines. +/./ { + p + d + } +# Write a single empty line, then look for more empty lines. +/^$/ p +# Get next line, discard the held <newline> (empty line), +# and look for more empty lines. +:Empty +/^$/ { + N + s/.// + b Empty + } +# Write the non-empty line before going back to search +# for the first in a set of empty lines. + p +' +\fP +.fi +.RE +.LP +The System V \fB-s\fP option to silence error messages can be accomplished +by redirecting the standard error. Note that the BSD +documentation for \fIcat\fP uses the term "blank line" to mean the +same as the POSIX "empty line'': a line consisting only of a +<newline>. +.LP +The BSD \fB-n\fP option was omitted because similar functionality +can be obtained from the \fB-n\fP option of the \fIpr\fP utility. +.SH FUTURE DIRECTIONS +.LP +None. +.SH SEE ALSO +.LP +\fImore\fP, the System Interfaces volume of IEEE\ Std\ 1003.1-2001, +\fIsetvbuf\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 . |