LP(4)
NAME
lp − line printer
HP-UX COMPATIBILITY
Level: HP-UX/NUCLEUS
Origin: System V
DESCRIPTION
All file names in /dev containing the mnemonic lp are special files providing the interface to a particular line printer. A line printer is a character special device which may optionally have an interpretation applied to the data.
If the lp mnemonic is preceded by the character r, then data is sent to the printer in raw mode. (This could assume, for example, a graphic printer operation.) In raw mode, no interpretation is done on the data to be printed, and no page formatting is performed. The bytes are simply sent to the printer and printed as is.
If the lp mnemonic is not preceded by the character r, then the data is interpreted according to rules discussed below. The driver understands the concept of a printer page in that it has a page length (in lines), line length (in characters), and indent from the left margin (in characters). The default line length, indent, lines per page, open and close page eject, and handling of backspace are set to defaults determined when the printer is opened and recognized by the system the first time. If the printer is not recognized, the default line length is 132 characters, indent is 4 characters, lines per page is 66, one page is ejected on close and none on open, and backspace is handled for a character printer.
The following rules describe the interpretation of the data stream.
A form feed causes a page eject and resets the line counter to zero.
Multiple consecutive form-feeds are treated as a single form-feed.
The new-line character is mapped into a carriage-return/line-feed sequence, and if an offset is specified a number of blanks are inserted after the carriage-return/line-feed sequence.
A new-line that extends over the end of a page is turned into a form-feed.
Tab characters are expanded into the appropriate number of blanks (tab stops are assumed to occur every eight character positions).
Backspaces are interpreted to yield the appropriate overstrike either for a character printer or a line printer.
Lines longer than the line length minus the indent (i.e., 128 characters, using the above defaults) are truncated.
Carriage-return characters cause the line to be overstruck.
Two ioctl(2) system calls are available to control the lines per page, characters per line, and indent. At either open or close time, if no page eject is requested, the paper will not be moved.
#include <sys/lprio.h>
ioctl (fildes, command, arg)
struct lprio ∗arg;
The commands are:
LPRGET Get the current printer status information and store in the lprio structure referenced by arg.
LPRSET Set the current printer status information from the structure referenced by arg.
Thus, indent, page width and page length can be set with an external program. If the columns field is set to zero, the defaults are restored at the next open.
FILES
/dev/lp default or standard printer used by some HP-UX commands;
/dev/[r]lp∗ special files for printers
HARDWARE DEPENDENCIES
Series 500:
The number of characters per line (80 or 132) and wrap-around can be selected/enabled via the minor number in the mknod(1M) command. See the System Administrator Manual for details.
The LPRGET and LPRSET ioctl commands are not currently supported.
Series 200:
The uppercase-only flag, the no-overprint flag, the raw-mode flag, and no-page-eject-on-open-or-close flag can be selected (enabled) by appropriate use of the minor number in the mknod(1M) command. See the HP-UX System Administrator Manual for details.
Integral PC:
This version of lp is not supported on the Integral PC. Refer to the Integral Personal Computer Programmer’s Guide for more information about the lp implementation on the Intregral PC.
SEE ALSO
Hewlett-Packard — last mod. May 11, 2021