[ Previous | Next | Table of Contents | Index | Library Home | Legal | Search ]

Commands Reference, Volume 3

lp.cat, lp.set, lp.tell Command

Note: This is a System V Print Subsystem command.


Default printer filter used by interface programs.


/usr/lib/lp/bin/lp.cat [ -r ] [ Rate ]

/usr/lib/lp/bin/lp.set H_pitch V_pitch Width Length Charset

/usr/lib/lp/bin/lp.tell Printer


The lp.cat command is the default printer filter called by the interface programs. lp.cat reads the file to be printed on its standard input and writes it to the device to be printed on.

lp.cat handles the following signals:

The lp.cat command aborts a printing job if it has to wait too long on output. The default maximum time to wait is calculated as twice the output buffer size (2 * 1024 bytes) divided by the smallest of the values of the transmission rate, print rate, or the specified Rate (all rates are in characters per second, CPS). A new maximum delay time may be defined by the Rate parameter provided that this increases the delay time. If Rate is 0 then the delay allowed is effectively infinite.

When the -r flag is specified, lp.cat reports the effective throughput in characters per second. This statistic is printed on the standard error after the transmission of every 1024 bytes.

Interface programs may call the lp.set command to set the character pitch (H_pitch), line pitch (V_pitch), page Width, page Length, and character set (Charset) on the printer.

The default units are characters per inch for the character and line pitch, number of columns for width, and number of lines for length. Units may be stated explicitly by appending the values with c for centimeters, and i for inches.

If it cannot set a particular characteristic, lp.set exits with a value of 1 and prints a one letter character code followed by newline to the standard error. The character codes are shown in the following table:

Character code Printer characteristic not set
H character pitch
L page length
S character set
V line pitch
W page width

Interface scripts use lp.tell to forward descriptions of printer faults to the print service. lp.tell sends everything that it reads on its standard input to the print service. The print service forwards the message as an alert to the print administrator.


-r Specifies reports the effective throughput in characters per second for the lp.cat command. This statistic is printed on the standard error after the transmission of every 1024 bytes.

Exit Status

The following table shows the possible exit values for lp.cat:

0 Normal exit; no error
1 Standard input not defined
2 Standard output not defined
3 Printer type (TERM) not defined or not in terminfo database
4 Standard input and output are identical
5 Write failed; printer may be off-line
6 Excessive delay caused timeout; printer may be off-line
7 Hangup (SIGHUP) detected; loss of carrier
8 Termination (SIGINT or SIGQUIT), or pipe closed early (SIGPIPE)

lp.set returns 0 if successful; otherwise it returns 1 on error.

lp.tell returns:

0 Normal exit; no error
1 Cannot open message queue to the print service
90 Cannot get printer name or key from print service
91 Cannot send message to print service
92 Cannot receive acknowledgment from print service
93 Corrupted acknowledgment received from print service
94 Print service reports message corrupted in transmission


/usr/lib/lp/bin/lp.cat Full pathname of lp.cat
/usr/lib/lp/bin/lp.set Full pathname of lp.set
/usr/lib/lp/bin/lp.tell Full pathname of lp.tell
/etc/lp/model Printer interface programs directory
/etc/lp/interfaces Printer interface programs directory


The lp command.

The signal subroutine.

The terminfo file.

[ Previous | Next | Table of Contents | Index | Library Home | Legal | Search ]