Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > L


Seires 800 Only
HP-UX 11i Version 3: February 2007

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index


lp — line printer


#include <sys/lprio.h>


This manual entry applies only to a certain group of printers. For Series 800, 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 LPRSET request.

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 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 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 is generated.

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 condition.

The ioctl requests have the following form:

#include <sys/lprio.h> int ioctl(int fildes, int request, struct lprio *arg);

The possible values of request are:


Get the current printer status information and store in the lprio structure to which arg points.


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 */ 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 settings.


lp was developed by HP and AT&T.



default or standard printer used by some HP-UX commands;


special files for printers

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.