man > lp(4)

lp(4)                                 Kernel Interfaces Manual                                 lp(4)

NAME
       lp - line printer devices

SYNOPSIS
       #include <linux/lp.h>

CONFIGURATION
       lp[0–2]  are  character  devices for the parallel line printers; they have major number 6 and
       minor number 0–2.  The minor numbers correspond to the printer port  base  addresses  0x03bc,
       0x0378, and 0x0278.  Usually they have mode 220 and are owned by user root and group lp.  You
       can  use  printer  ports  either with polling or with interrupts.  Interrupts are recommended
       when high traffic is expected, for example, for  laser  printers.   For  typical  dot  matrix
       printers, polling will usually be enough.  The default is polling.

DESCRIPTION
       The following ioctl(2) calls are supported:

       int ioctl(int fd, LPTIME, int arg)
              Sets  the amount of time that the driver sleeps before rechecking the printer when the
              printer's buffer appears to be filled to arg.  If you have a  fast  printer,  decrease
              this number; if you have a slow printer, then increase it.  This is in hundredths of a
              second, the default 2 being 0.02 seconds.  It influences only the polling driver.

       int ioctl(int fd, LPCHAR, int arg)
              Sets  the  maximum  number of busy-wait iterations which the polling driver does while
              waiting for the printer to get ready for receiving a character to arg.  If printing is
              too slow, increase this number; if the system gets too  slow,  decrease  this  number.
              The default is 1000.  It influences only the polling driver.

       int ioctl(int fd, LPABORT, int arg)
              If  arg  is  0, the printer driver will retry on errors, otherwise it will abort.  The
              default is 0.

       int ioctl(int fd, LPABORTOPEN, int arg)
              If arg is 0, open(2) will be aborted on error, otherwise error will be  ignored.   The
              default is to ignore it.

       int ioctl(int fd, LPCAREFUL, int arg)
              If  arg  is  0,  then  the out-of-paper, offline, and error signals are required to be
              false on all writes, otherwise they are ignored.  The default is to ignore them.

       int ioctl(int fd, LPWAIT, int arg)
              Sets the number of busy waiting iterations to wait before strobing the printer to  ac‐
              cept a just-written character, and the number of iterations to wait before turning the
              strobe  off  again,  to arg.  The specification says this time should be 0.5 microsec‐
              onds, but experience has shown the delay caused by the code is  already  enough.   For
              that reason, the default value is 0.  This is used for both the polling and the inter‐
              rupt driver.

       int ioctl(int fd, LPSETIRQ, int arg)
              This  ioctl(2)  requires superuser privileges.  It takes an int containing the new IRQ
              as argument.  As a side effect, the printer will be reset.  When arg is 0, the polling
              driver will be used, which is also default.

       int ioctl(int fd, LPGETIRQ, int *arg)
              Stores the currently used IRQ in arg.

       int ioctl(int fd, LPGETSTATUS, int *arg)
              Stores the value of the status port in arg.  The bits have the following meaning:
              LP_PBUSY     inverted busy input, active high
              LP_PACK      unchanged acknowledge input, active low
              LP_POUTPA    unchanged out-of-paper input, active high
              LP_PSELECD   unchanged selected input, active high
              LP_PERRORP   unchanged error input, active low

              Refer to your printer manual for the meaning of the signals.  Note  that  undocumented
              bits may also be set, depending on your printer.

       int ioctl(int fd, LPRESET)
              Resets the printer.  No argument is used.

FILES
       /dev/lp*

SEE ALSO
       chmod(1), chown(1), mknod(1), lpcntl(8), tunelp(8)

Linux man-pages 6.7                          2023-02-05                                        lp(4)
lp(4) □✕
NAME SYNOPSIS
#include
CONFIGURATION DESCRIPTION FILES SEE ALSO

Generated by phpman v4.11.2-35-gf98a251 · Markdown · JSON · MCP Author: Che Dong Under GNU General Public License
2026-10-07 13:11 @216.73.217.162
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 Transitional!Valid CSS!

^_top_^