Man Pages

lp(1p) - phpMan lp(1p) - phpMan

Command: man perldoc info search(apropos)  

LP(1P)                     POSIX Programmer's Manual                    LP(1P)

       This manual page is part of the POSIX Programmer's Manual.  The Linux implementation of this interface may dif-
       fer (consult the corresponding Linux manual page for details of Linux behavior), or the interface  may  not  be
       implemented on Linux.

       lp - send files to a printer

       lp [-c][-d dest][-n copies][-msw][-o option]...  [-t title][file...]

       The lp utility shall copy the input files to an output destination in an unspecified manner. The default output
       destination should be to a hardcopy device, such as  a  printer  or  microfilm  recorder,  that  produces  non-
       volatile, human-readable documents. If such a device is not available to the application, or if the system pro-
       vides no such device, the lp utility shall exit with a non-zero exit status.

       The actual writing to the output device may occur some time after the lp utility successfully exits. During the
       portion of the writing that corresponds to each input file, the implementation shall guarantee exclusive access
       to the device.

       The lp utility shall associate a unique request ID with each request.

       Normally, a banner page is produced to separate and identify each print job. This page  may  be  suppressed  by
       implementation-defined conditions, such as an operator command or one of the -o option values.

       The lp utility shall conform to the Base Definitions volume of IEEE Std 1003.1-2001, Section 12.2, Utility Syn-
       tax Guidelines.

       The following options shall be supported:

       -c     Exit only after further access to any of the input files is no longer required. The application can then
              safely  delete  or  modify  the  files  without  affecting the output operation. Normally, files are not
              copied, but are linked whenever possible. If the -c option is not given, then the user should be careful
              not  to  remove  any of the files before the request has been printed in its entirety. It should also be
              noted that in the absence of the -c option, any changes made to the named files  after  the  request  is
              made but before it is printed may be reflected in the printed output. On some implementations, -c may be
              on by default.

       -d  dest
              Specify a string that names the destination ( dest). If dest is a printer, the request shall be  printed
              only on that specific printer. If dest is a class of printers, the request shall be printed on the first
              available printer that is a member of the class. Under certain conditions (printer unavailability,  file
              space limitation, and so on), requests for specific destinations need not be accepted. Destination names
              vary between systems.

       If -d is not specified, and neither the LPDEST nor PRINTER environment variable is set, an unspecified destina-
       tion  is  used. The -d dest option shall take precedence over LPDEST,  which in turn shall take precedence over
       PRINTER.  Results are undefined when dest contains a value that is not a valid destination name.

       -m     Send mail (see mailx ) after the files have been printed. By default, no mail is sent upon  normal  com-
              pletion of the print request.

       -n  copies
              Write  copies number of copies of the files, where copies is a positive decimal integer. The methods for
              producing multiple copies and for arranging the multiple copies when multiple file operands are used are
              unspecified,  except  that each file shall be output as an integral whole, not interleaved with portions
              of other files.

       -o  option
              Specify printer-dependent or class-dependent options. Several such options may be collected by  specify-
              ing the -o option more than once.

       -s     Suppress messages from lp.

       -t  title
              Write title on the banner page of the output.

       -w     Write a message on the user's terminal after the files have been printed.  If the user is not logged in,
              then mail shall be sent instead.

       The following operand shall be supported:

       file   A pathname of a file to be output. If no file operands are specified, or if a file operand is  '-',  the
              standard input shall be used. If a file operand is used, but the -c option is not specified, the process
              performing the writing to the output device may have user and group permissions that differ from that of
              the process invoking lp.

       The standard input shall be used only if no file operands are specified, or if a file operand is '-' .  See the
       INPUT FILES section.

       The input files shall be text files.

       The following environment variables shall affect the execution of lp:

       LANG   Provide a default value for the internationalization variables that are unset or  null.  (See  the  Base
              Definitions  volume  of IEEE Std 1003.1-2001, Section 8.2, Internationalization Variables for the prece-
              dence of internationalization variables used to determine the values of locale categories.)

       LC_ALL If set to a non-empty string value, override the values of all the other internationalization variables.

              Determine  the locale for the interpretation of sequences of bytes of text data as characters (for exam-
              ple, single-byte as opposed to multi-byte characters in arguments and input files).

              Determine the locale that should be used to affect the format and contents of diagnostic messages  writ-
              ten to standard error and informative messages written to standard output.

              Determine the format and contents of date and time strings displayed in the lp banner page, if any.

       LPDEST Determine  the destination. If the LPDEST environment variable is not set, the PRINTER environment vari-
              able shall be used. The -d dest option takes precedence over LPDEST . Results are undefined when  -d  is
              not specified and LPDEST contains a value that is not a valid destination name.

              Determine the location of message catalogs for the processing of LC_MESSAGES .

              Determine the output device or destination. If the LPDEST and PRINTER environment variables are not set,
              an unspecified output device is used. The -d dest option and the LPDEST environment variable shall  take
              precedence  over  PRINTER.  Results are undefined when -d is not specified, LPDEST is unset, and PRINTER
              contains a value that is not a valid device or destination name.

       TZ     Determine the timezone used to calculate date and time strings displayed in the lp banner page, if  any.
              If TZ is unset or null, an unspecified default timezone shall be used.


       The  lp utility shall write a request ID to the standard output, unless -s is specified. The format of the mes-
       sage is unspecified. The request ID can be  used  on  systems  supporting  the  historical  cancel  and  lpstat

       The standard error shall be used only for diagnostic messages.



       The following exit values shall be returned:

        0     All input files were processed successfully.

       >0     No output device was available, or an error occurred.


       The following sections are informative.

       The  pr  and  fold utilities can be used to achieve reasonable formatting for the implementation's default page

       A conforming application can use one of the file operands only with the -c option or if the  file  is  publicly
       readable and guaranteed to be available at the time of printing. This is because IEEE Std 1003.1-2001 gives the
       implementation the freedom to queue up the request for printing at some later time by a different process  that
       might not be able to access the file.

        1. To print file file:

           lp -c file

        2. To print multiple files with headers:

           pr file1 file2 | lp

       The  lp  utility  was  designed to be a basic version of a utility that is already available in many historical
       implementations. The standard developers considered that it should be implementable simply as:

              cat "$@" > /dev/lp

       after appropriate processing of options, if that is how the implementation chose to  do  it  and  if  exclusive
       access could be granted (so that two users did not write to the device simultaneously).  Although in the future
       the standard developers may add other options to this utility, it should always be  able  to  execute  with  no
       options or operands and send the standard input to an unspecified output device.

       This  volume  of  IEEE Std 1003.1-2001  makes  no  representations concerning the format of the printed output,
       except that it must be "human-readable" and "non-volatile". Thus, writing by default to a disk or tape drive or
       a  display  terminal would not qualify. (Such destinations are not prohibited when -d dest, LPDEST,  or PRINTER
       are used, however.)

       This volume of IEEE Std 1003.1-2001 is worded such that a "print job" consisting of multiple input files,  pos-
       sibly in multiple copies, is guaranteed to print so that any one file is not intermixed with another, but there
       is no statement that all the files or copies have to print out together.

       The -c option may imply a spooling operation, but this is not required. The utility can be implemented to  wait
       until the printer is ready and then wait until it is finished. Because of that, there is no attempt to define a
       queuing mechanism (priorities, classes of output, and so on).

       On some historical systems, the request ID reported on the STDOUT can be used to later cancel or find the  sta-
       tus of a request using utilities not defined in this volume of IEEE Std 1003.1-2001.

       Although  the  historical System V lp and BSD lpr utilities have provided similar functionality, they used dif-
       ferent names for the environment variable specifying the destination printer.  Since the name  of  the  utility
       here  is  lp,  LPDEST  (used by the System V lp utility) was given precedence over PRINTER (used by the BSD lpr
       utility). Since environments of users frequently contain one or the other environment variable, the lp  utility
       is  required  to recognize both. If this was not done, many applications would send output to unexpected output
       devices when users moved from system to system.

       Some have commented that lp has far too little functionality to make  it  worthwhile.  Requests  have  proposed
       additional options or operands or both that added functionality. The requests included:

        * Wording requiring the output to be "hardcopy"

        * A requirement for multiple printers

        * Options for supporting various page-description languages

       Given  that  a  compliant  system is not required to even have a printer, placing further restrictions upon the
       behavior of the printer is not useful. Since hardcopy format is so application-dependent, it is  difficult,  if
       not  impossible,  to  select a reasonable subset of functionality that should be required on all compliant sys-

       The term unspecified is used in this section in lieu of implementation-defined as  most  known  implementations
       would  not  be  able  to  make definitive statements in their conformance documents; the existence and usage of
       printers is very dependent on how the system administrator configures each individual system.

       Since the default destination, device type, queuing mechanisms, and acceptable forms of input are all  unspeci-
       fied, usage guidelines for what a conforming application can do are as follows:

        * Use  the  command  in  a pipeline, or with -c, so that there are no permission problems and the files can be
          safely deleted or modified.

        * Limit output to text files of reasonable line lengths and printable characters and  include  no  device-spe-
          cific  formatting information, such as a page description language. The meaning of "reasonable" in this con-
          text can only be answered as a quality-of-implementation issue, but it should be  apparent  from  historical
          usage  patterns  in the industry and the locale. The pr and fold utilities can be used to achieve reasonable
          formatting for the default page size of the implementation.

       Alternatively, the application can arrange its installation in such a way that it requires the system  adminis-
       trator or operator to provide the appropriate information on lp options and environment variable values.

       At  a  minimum,  having  this utility in this volume of IEEE Std 1003.1-2001 tells the industry that conforming
       applications require a means to print output and provides at least a command name and LPDEST routing  mechanism
       that  can  be used for discussions between vendors, application writers, and users.  The use of "should" in the
       DESCRIPTION of lp clearly shows the intent of the standard developers, even if they  cannot  mandate  that  all
       systems (such as laptops) have printers.

       This  volume  of IEEE Std 1003.1-2001 does not specify what the ownership of the process performing the writing
       to the output device may be. If -c is not used, it is unspecified whether the process performing the writing to
       the output device has permission to read file if there are any restrictions in place on who may read file until
       after it is printed.  Also, if -c is not used, the results of deleting file before it is printed  are  unspeci-



       Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1, 2003 Edition, Stan-
       dard for  Information  Technology  --  Portable  Operating  System  Interface  (POSIX),  The  Open  Group  Base
       Specifications  Issue  6, Copyright (C) 2001-2003 by the Institute of Electrical and Electronics Engineers, Inc
       and The Open Group. In the event of any discrepancy between this version and the original  IEEE  and  The  Open
       Group  Standard,  the  original IEEE and The Open Group Standard is the referee document. The original Standard
       can be obtained online at .

IEEE/The Open Group                  2003                               LP(1P)