Series 800 Only
lp - line printer
This manual entry applies only to a certain group of printers. For
Series 800 systems, it applies to printers controlled by the device
driver lpr2. It does not apply to any printers on Series 700 systems.
This section describes capabilities provided by many line printers
supported by various versions of the HP-UX operating system. A line
printer is a character special device that may optionally have an
interpretation applied to the data.
If the character special device file has been created with the raw
option (see the HP-UX System Administrator manuals for information
about creating device files with the raw option), data is sent to the
printer in raw mode (as, for example, when handling a graphics
printing operation). In raw mode, no interpretation is done on the
data to be printed, and no page formatting is performed. Data bytes
are simply sent to the printer and printed exactly as received.
If the device file does not contain the raw option, data can still be
sent to the printer in raw mode. Raw mode is set and cleared by the
If the line printer device file does not contain the raw option, 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 offset 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
+ Multiple consecutive form-feeds are treated as a single form-
+ The new-line character is mapped into a carriage-return/line-
feed sequence, and if an offset is specified a number of
Hewlett-Packard Company - 1 - HP-UX Release 11i: November 2000
Series 800 Only
blanks are inserted after the carriage-return/line-feed
+ A new-line that extends over the end of a page is turned into
+ Tab characters are expanded into the appropriate number of
blanks (tab stops are assumed to occur every eight character
positions as offset by the current indent value).
+ 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.
+ When it is opened or closed, a suitable number of page ejects
Two ioctl(2) requests are available to control the lines per page,
characters per line, indent, handling of backspaces, and number of
pages to be ejected at open and close times. At either open or close
time, if no page eject is requested the paper will not be moved. For
opens, line and page counting will start assuming a top-of-form
The ioctl requests have the following form:
int ioctl(int fildes, int request, struct lprio *arg);
The possible values of request are:
LPRGET Get the current printer status information and store
in the lprio structure to which arg points.
LPRSET Set the current printer status information from the
structure to which arg points.
The lprio structure used in the LPRGET and LPRSET requests is defined
in <sys/lprio.h>, and includes the following members:
short int ind; /* indent */
short int col; /* columns per page */
short int line; /* lines per page */
short int bksp; /* backspace handling flag */
short int open_ej; /* pages to eject on open */
short int close_ej; /* pages to eject on close */
Hewlett-Packard Company - 2 - HP-UX Release 11i: November 2000
Series 800 Only
short int raw_mode; /* raw mode flag */
These are remembered across opens, so the indent, page width, and page
length can be set with an external program. If the col field is set
to zero, the defaults are restored at the next open.
If the backspace handling flag is 0, a character printer is assumed
and backspaces are passed through the driver unchanged. If the flag
is a 1, a line printer is assumed, and sufficient print operations are
generated to generate the appropriate overstruck characters.
If the raw mode flag is 0, data sent to the printer is formatted
according to indent, columns per page, lines per page, backspace
handling, and pages to eject on open and close.
If the raw mode flag is 1, data sent to the printer is not formatted.
If the raw mode flag is changed from 1 to 0 (raw mode is turned off)
and the format settings (indent, columns per page, etc.) have not been
modified, the data is formatted according to the prior format
lp was developed by HP and AT&T.
/dev/lp default or standard printer used by some HP-UX
/dev/[r]lp* special files for printers
lp(1), slp(1), ioctl(2), cent(7), intro(7).
Hewlett-Packard Company - 3 - HP-UX Release 11i: November 2000