注意:这是一个 System V 打印子系统命令。
接口程序使用的系统设定的打印机过滤器
/usr/lib/lp/bin/lp.cat [ -r ] [ Rate ]
/usr/lib/lp/bin/lp.set H_pitch V_pitch Width Length Charset
/usr/lib/lp/bin/lp.tell Printer
Lp.cat 命令是接口程序调用的系统设定的打印机过滤器。 Lp.cat 从其标准输入读取需要打印的文件,然后将其 写到打印的设备上。
lp.cat 命令处理以下的信号:
如果某个打印作业必须在输出上等待太长的时间,那么 lp.cat 命令会异常终止它。 缺省的最长等待时间计算为两倍的输出缓冲区大小(2 × 1024 字节)除以最小的传输速率、打印速率 或指定的 Rate 的值(所有的速率都表示为每秒字符数,CPS)。如果 Rate 参数增加了延迟时间,那么可以通过该参数定义新的最长延迟时间。 如果 Rate 为 0,那么延时可以为无限长。
当指定了 -r 标志时,lp.cat 以每秒字符数的方式报告有效吞吐量。在每次传输 1024 字节后,该统计会打印在标准错误上。
接口程序可以调用 lp.set 命令来设置打印机上的 字符间距(H_pitch)、行间距(V_pitch)、页 Width、页 Length和字符集(Charset)。
缺省单元为每个字符和行间距的每英寸字符数、宽度的列数和长度的行数。 单元可以通过用 c 代替厘米和 i 代替英寸的附加值来明确表示状态。
如果不能设置详细的特征,lp.set 退出时的值为 1,并向标准错误打印跟着一个换行字符的 1 个字母的字符代码。 下表中显示了字符代码:
字符代码 | 打印机特征没有设置 |
---|---|
H | 字符间距 |
L | 页长度 |
S | 字符集 |
V | 行间距 |
W | 页宽度 |
接口脚本使用 lp.tell 来将打印机故障的描述转发给打印服务。 lp.tell 将它在自己的标准输入上读取的所有内容都发送到打印服务。 打印服务将消息作为警告转发给打印管理器。
-r | 说明会以每秒字符数的方式向 lp.cat 命令报告有效吞吐量。 在每次传输 1024 字节后,该统计会打印在标准错误上。 |
以下的表显示了 lp.cat 的可能退出值:
0 | 正常退出;没有出错 |
1 | 标准输入未定义 |
2 | 标准输出未定义 |
3 | 打印机类型(TERM)未定义,或不在 terminfo 数据库中 |
4 | 标准输入和输出不唯一 |
5 | 写失败;打印机可能离线 |
6 | 过多的延迟导致了超时;打印机可能离线了 |
7 | 检测到挂断(SIGHUP);丢失载波 |
8 | 终止(SIGINT 或 SIGQUIT),或管道先前已经关闭(SIGPIPE) |
如果成功,lp.set 返回 0;否则出错它会返回 1。
lp.tell 返回:
0 | 正常退出;没有出错 |
1 | 不能打开到打印服务的消息队列 |
90 | 无法从打印服务获取打印机名或密钥 |
91 | 无法将消息发送打印服务 |
92 | 无法接收打印服务的确认 |
93 | 从打印服务接收到了受损的确认 |
94 | 打印服务报告消息在传输中受损 |
/usr/lib/lp/bin/lp.cat | lp.cat 的全路径名 |
/usr/lib/lp/bin/lp.set | lp.set 的全路径名 |
/usr/lib/lp/bin/lp.tell | lp.tell 的全路径名 |
/etc/lp/model | 打印机接口程序目录 |
/etc/lp/interfaces | 打印机接口程序目录 |
lp 命令。
signal 子例程。
terminfo 文件。