Unix/Linux Go Back    


Linux 2.6 - man page for lp (linux section 1posix)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


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

NAME
       lp - send files to a printer

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

DESCRIPTION
       The  lp utility shall copy the input files to an output destination in an unspecified man-
       ner. 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 provides  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 success-
       fully 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.

OPTIONS
       The  lp utility shall conform to the Base Definitions volume of IEEE Std 1003.1-2001, Sec-
       tion 12.2, Utility Syntax 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  destination  is  used. The -d dest option shall take precedence over LPDEST ,
       which in turn shall take precedence over PRINTER . Results are undefined  when  dest  con-
       tains 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 completion 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 specifying 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.

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

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

INPUT FILES
       The input files shall be text files.

ENVIRONMENT VARIABLES
       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, Inter-
	      nationalization Variables for the precedence 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 interna-
	      tionalization variables.

       LC_CTYPE
	      Determine the locale for the interpretation of sequences of bytes of text  data  as
	      characters  (for	example, single-byte as opposed to multi-byte characters in argu-
	      ments and input files).

       LC_MESSAGES
	      Determine the locale that should be used to affect the format and contents of diag-
	      nostic messages written to standard error and informative messages written to stan-
	      dard output.

       LC_TIME
	      Determine the format and contents of date and time strings displayed in the lp ban-
	      ner page, if any.

       LPDEST Determine  the  destination.  If	the  LPDEST  environment variable is not set, the
	      PRINTER environment variable 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.

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

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

ASYNCHRONOUS EVENTS
       Default.

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

STDERR
       The standard error shall be used only for diagnostic messages.

OUTPUT FILES
       None.

EXTENDED DESCRIPTION
       None.

EXIT STATUS
       The following exit values shall be returned:

	0     All input files were processed successfully.

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

CONSEQUENCES OF ERRORS
       Default.

       The following sections are informative.

APPLICATION USAGE
       The pr and fold utilities can be used to achieve reasonable formatting for the implementa-
       tion's default page size.

       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.

EXAMPLES
	1. To print file file:

	   lp -c file

	2. To print multiple files with headers:

	   pr file1 file2 | lp

RATIONALE
       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 destina-
       tions 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 multi-
       ple  input files, possibly 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  status  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	function-
       ality,  they  used different 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  util-
       ity)  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 systems.

       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 admin-
       istrator configures each individual system.

       Since the default destination, device type, queuing mechanisms, and  acceptable	forms  of
       input  are  all unspecified, 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-specific formatting information, such as a page description language.
	  The meaning of "reasonable" in this context can only be answered as a quality-of-imple-
	  mentation issue, but it should be apparent from historical usage patterns in the indus-
	  try and the locale. The pr and fold utilities can be used to achieve reasonable format-
	  ting for the default page size of the implementation.

       Alternatively, the application can arrange its installation in such a way that it requires
       the  system administrator 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  indus-
       try  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  ven-
       dors,  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
       unspecified.

FUTURE DIRECTIONS
       None.

SEE ALSO
       mailx

COPYRIGHT
       Portions of this text are reprinted and	reproduced  in	electronic  form  from	IEEE  Std
       1003.1,	2003  Edition,	Standard  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 orig-
       inal Standard can be obtained online at http://www.opengroup.org/unix/online.html .

IEEE/The Open Group			       2003					    LP(P)
Unix & Linux Commands & Man Pages : 2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 11:58 PM.