Specifications

4-143
Printer, Plotter, and Spooler Subsystem Programming
The mail specifies several items:
The physical printer that would have been used.
The values of the flags that pertain to this spooler queue.
The pipeline of filters that would have been executed.
The flags values used on the command line, a1, Pasc, fp, z1, p12, scourier, C, and N3,
can be seen in the section of the mail labeled FLAG VALUES.
Of more interest is the section of the mail labeled PIPELINE OF FILTERS. Here the pipeline
of filters determined by piobe and constructed by the shell can be seen. The pr filter will
pre–process the print job (/etc/motd) and send its output to pioformat, the
device–independent formatter driver.
This is a good place to examine how piobe uses the virtual printer definition associated with
the spooler queue named asc. The colon file (which contains the virtual printer definition for
this queue) uses the attribute ia to specify the input data stream pipeline (the PIPELINE OF
FILTERS section above) for ASCII jobs. The value of ia for this queue is:
%Ide/pioformat –@%Idd/%Imm –!%Idf/piof5202 –l%IwL –w%IwW
%f[begijpqstuvxyzEGIJLOQWXZ] %Uh
The lsvirprt command can be used to format ia so it reads as follows:
%Id INCLUDE: (Directory Containing Miscellaneous Modules)
’/pioformat –@’
%Idd INCLUDE: (Directory Containing Digested Data Base
Files)
’/’
%Imm INCLUDE: (File Name Of (Digested) Data Base; Init. By
”piodigest” (mt.md.mn.mq:mv))
’ –!’
%Idf INCLUDE: (Directory Containing Loadable Formatter
Routines)
’/piof5202 –l’
%IwL INCLUDE: (Page Length In Chars, Using Length From Data
Base
(used in pipelines))
’ –w’
%IwW INCLUDE: (Page Width In Characters, Using Width From
Data Base
(used in pipelines))
’ ’
%f[begijpqstuvxyzEGIJLOQWXZ] For Each Flag x on Command
Line:”–xArgument” –>
OUTPUT
’ ’
%Uh Indicate to piobe: Pass the Following Attributes to
subsequent
printer commands
The %Id resolves to /usr/lib/lpd/pio/etc, the directory that contains miscellaneous
modules. The ’/pioformat –@’ is appended, without the single quotes, to the previous
string, becoming /usr/lib/lpd/pio/etc/pioformat, otherwise known as the full path
name to the formatter driver. The –@ after pioformat is a flag to the pioformat command
which, in this instance, specifies the full path name of the digested database file to be
accessed.
The value of the –@ flag is specified by the concatenation of %Idd, ’/’, and %Imm. The
value of %Idd is defined in the colon file as %I@5/ddi. The @5 is an automatic variable
whose value is /var/spool/lpd/pio/@local, so % Idd resolves to
/var/spool/lpd/pio/@local/ddi. The ’/’, without the single quotes, is appended to
that path. %Imm is defined in the colon file as mt.md.mn.mq.mv, and other virtual printer
attributes. These attributes define:
mt – Printer type
md – Output data stream type