PRINTCAP(5) FreeBSD ファイルフォーマットマニュアル PRINTCAP(5)
名称
printcap − プリンタケーパビリティデータベース |
書式
printcap |
解説 |
printcap は、ラインプリンタの記述に使われる termcap(5) を簡略化したもので す。スプールシステムは利用のたび毎に printcap ファイルにアクセスするた め、プリンタを動的に追加したり削除することが可能です。データベース中の各 々のエントリが、1 台のプリンタを記述するのに使われます。 termcap(5) とは 異なり、このデータベースは代替できません。これは、アカウント情報がバイパ スされてしまうことがあるからです。 デフォルトのプリンタは通常 lp ですが、環境変数 PRINTER によって上書きする こともできます。各スプーリングユーティリティはオプション −P printer をサ ポートし、出力先のプリンタ名を明示することが可能です。 あるプリンタに対するデータベースをセットアップする方法の詳細については、 4.3 BSD Line Printer Spooler Manual を参照してください。 |
ケーパビリティ
ファイルレイアウトの解説については termcap(5) を参照してください。 |
Name |
Type |
Default |
Description |
af str NULL アカウンティングファイル名 |
\f’ フォームフィード送信文字
fo bool false デバイスオープン時にフォーム
フィードを印字 2 文字のケーパビリティは、別の読み易い名前があります。 短い形式 長い形式 af acct.file ローカルラインプリンタのドライバが字下げをサポートしているならば、プリン タデーモンはその使い方を理解しなければなりません。 |
フィルタ
lpd(8) デーモンは filters のパイプラインを作成し、さまざまなタイプのプリ ンタ用に処理を行います。フィルタは lpr(1) へ渡されるフラグに応じて選択さ れます。パイプラインは次のように設定されます。 p pr | if 通常テキスト + pr(1) |
if |
通常テキスト |
|||
cf |
cifplot |
|||
df |
DVI (tex) |
|||
gf |
plot(3) |
|||
nf |
ditroff |
|||
rf |
Fortran |
|||
tf |
troff |
|||
vf |
ラスタイメージ |
if フィルタは次の引数をとります。 if [−c] −wwidth −llength −iindent −n login −h host acct-file −c フラグは −l フラグ (コントロール文字をそのまま通過させます) が lpr(1) に指定された場合のみ渡されます。 width 機能と length 機能はページ幅とペー ジ長を (それぞれ pw と pl によって) 文字単位で指定します。 −n と −h パラ メータでそれぞれのジョブの所有者のログイン名とログイン先ホスト名を指定し ます。 acct-file 機能は printcap の af エントリがそのまま使われます。 if が指定されなかった場合、 of が代わりに使われます。 of は if が個々の ジョブ毎にオープンされるのに対して、たった 1 回だけオープンされると言う特 徴を持っています。そのため、アカウンティングを行うには if の方が向いてい ます。 of には、 width と length フラグのみが与えられます。 その他の全てのフィルタは次のように呼び出されます。 filter −xwidth −ylength −n login −h host acct-file width と length はピクセル単位で表され、それぞれ px と py エントリで指定 されます。 全てのフィルタはファイルを stdin から読み込み stdout からの出力をプリンタ に送られ、 stderr または syslog(3) がログ出力に使われます。フィルタは SIGINT を無視してはいけません。 |
リモートプリンティング
rm を使用してリモートプリンタに印刷する時、 if または of を使用できます。 両方を指定した場合、 of は無視されます。どちらのフィルタも同様に振舞いま すが、上述の通り異なった引数を渡されます。特に、出力フィルタはファイルが 転送されるたびに、停止・再起動されます。このように動作することが必要な理 由は、フィルタを通した結果の大きさをリモート lpd(8) に渡すためです。 −p フラグが lpr(1) に渡されると、 pr(1) はローカルでは実行されませんが、 リモートの lpd(8) に対して要求されます。それゆえ、 if を介したフィルタリ ングは、 pr(1) が実行される後ではなく前に実行されることになります。 ネットワークプリンタのモデルによっては、 lpd(8) からのジョブを受け付ける ものの、ジョブ制御ファイルを無視し、各データファイルがプリンタに届くと印 刷するだけのものがあります。このような動作の副作用のひとつに、 lpr(1) コ マンドで指定される −# フラグで指定される複数部数の要求をプリンタが無視し てしまうことがあります。 rc エントリは、ユーザが元々要求した各部に対し て、 lpd(8) がデータファイルを再送するようにします。 rc エントリを指定し て良いのは、プリンタに直接ジョブを送るホストだけです。 lp が port@machine で指定された場合 (そして rm が使用されない場合)、印刷 データは指定された machine の指定された port に直接転送されます。 |
転送の統計情報
印刷ジョブがリモートマシン (他の UNIX ボックスかもしれませんしネットワー クプリンタかもしれません) に転送されるとき、各転送の統計情報を保持するこ とが有効かもしれません。 sr および ss のオプションは、lpd がこのような統 計情報を保持するためのファイル名を示します。ジョブの統計情報の行が各デー タファイルに書き込まれるのは、ファイルの転送に成功したときです。行の書式 は、転送における送信側と受信側とで、同一です。 ジョブを送ってくる種々のマシンとプリントサーバ間のネットワーク性能に興味 がある場合、受信データファイルの統計情報をプリントサーバで使えるかもしれ ません。プリントサーバは、印刷ジョブがサーバに届くたびに、各印刷ジョブの 速度の統計情報を集めることができます。 誰がどのジョブをリモートプリンタに送ったのか、何時送られたのか、そして ファイルの (バイト数での) 大きさはどのくらいだったかについて知りたい場 合、送信データファイルの統計情報を最小のアカウンティング記録として使える かもしれません。しかし、何ページ印刷したのかといった情報は一切含みませ ん。なぜなら、そのような情報をリモート (ネットワーク) プリンタから得るた めの標準的な方法が存在しないためです。 |
ロギング
ラインプリンタプログラム自身 (つまり lpd(8) とそれに関連するプログラム) が生成したエラーメッセージは、 syslog(3) の LPR ファシリティを使ってロギ ングされます。フィルタの 1 つから stderr に出力されたメッセージは、対応す る lf で指定されたファイルに送られます。当然、フィルタ自身もまた syslogd(8) を使うことがあるかも知れません。 コンソールに送られるエラーメッセージには、ラインフィードだけではなくキャ リッジリターンとラインフィードが追加されます。 |
関連項目
lpq(1), lpr(1), lprm(1), hosts.lpd(5), termcap(5), chkprintcap(8), lpc(8), lpd(8), pac(8) |
4.3 BSD Line Printer Spooler Manual.
歴史
printcap ファイルフォーマットは 4.2BSD から登場しました。 FreeBSD 10.0 October 11, 2000 FreeBSD 10.0 |