PRINTCAP(5)

명칭
printcap - 프린타케이파비리티데이타베이스

서식
printcap

해설
printcap (은)는, 라인 프린터의 기술에 사용된다 termcap(5) (을)를 간략화한 것입니다. spool 시스템은 이용의 여행마다 printcap 파일에 액세스 하기 위한(해), 프린터를 동적으로 추가하거나 삭제하는 것이 가능합니다. 데이타베이스중의 각각의 엔트리가, 1 대의 프린터를 기술하는데 사용됩니다. termcap(5) 과는 달리, 이 데이타베이스는 대체할 수 없습니다. 이것은, 어카운트 정보가 우회도로 되어 버리는 것이 있기 때문입니다.

디폴트의 프린터는 통상 lp 그렇지만, 환경 변수 PRINTER 에 의해 덧쓰기할 수도 있습니다. 각 스프링유티리티는 옵션 -P printer (을)를 서포트해, 출력처의 프린터명을 명시하는 것이 가능합니다.

어느 프린터에 대한 데이타베이스를 셋업 하는 방법의 상세한 것에 대하여는, (을)를 참조해 주세요.

케이파비리티
파일 레이아웃의 해설에 대해서는 termcap(5) (을)를 참조해 주세요.
Name Type Default Description
af | str | NULL | 어카운팅 파일명
br | num | none | lp 가 tty 의 경우, baud rate를 설정
((ioctl) 2 call)
cf | str | NULL | cifplot 데이터용 필터
ct | num | 120 | TCP connection의 타임 아웃 시간(초)
df | str | NULL | tex 데이터용 필터
(DVI 포맷)
ff | str | ‘\f’ | form feed 송신 캐릭터
fo | bool | false | 디바이스 오픈시에 form feed를 인자
gf | str | NULL | 그래프 데이터 필터
((plot) 3 포맷
hl | bool | false | burst 헤더 페이지를 마지막으로 인쇄
ic | bool | false | 인덴트 출력의 용무의(비표준의) ioctl 를 서포트했다
드라이버"
if | str | NULL | 어카운팅을 행하기 위한 텍스트 필터명
lf | str | /dev/console | 에라로깅파일뼹
lo | str | lock | 락 파일명
lp | str | /dev/lp | 출력시에 오픈하는 디바이스명
mc | num | 0 | lpr(1)
그리고 요구할 수 있는 최대 부수를 지정합니다. 0 = 제한 없음.
ms | str | NULL | lp 가 tty 의 경우, 콤마로 단락지은 리스트.
tty 모드 기술용의 stty(1) 리스트를 닮아 있다.
mx | num | 1000 | 최대 파일 사이즈 (
BUFSIZ 블록 단위). 0 = 제한 없음.
nd | str | NULL | 큐의 리스트용의 다음의 디렉토리 (미실장)
nf | str | NULL | ditroff 데이터용 필터 (device independent troff)
of | str | NULL | 출력용 필터링 프로그램명
pc | num | 200 | 1 피트 또는 1 페이지 근처의
비용 (1/100 센트 단위)"
pl | num | 66 | 1 페이지의 행수
pw | num | 132 | 1 행의 캐릭터수
px | num | 0 | 픽셀 단위의 페이지폭 (수평 방향)
py | num | 0 | 픽셀 단위의 페이지장 (수직 방향)
rc | bool | false | 리모트 호스트에 송신시, 각부를 재발송합니다 (아래와 같이 참조)
rf | str | NULL |
FORTRAN 형식의 텍스트 파일 출력용 필터
rg | str | NULL | 그룹 제한. 허가된 그룹의 멤버만 액세스가 허가된다
rm | str | NULL | 리모트 프린터명
rp | str | lp | 리모트 프린터명 인수
rs | bool | false | 로컬에 어카운트를 가지는 리모트 유저에 대한 제한
rw | bool | false | 프린터 디바이스를 읽고 쓰기용으로 오픈한다
sb | bool | false | 짧은 배너 (1 행만)
sc | bool | false | 복수 카피의 억제
sd | str | /var/spool/lpd | spool 디렉토리
sf | bool | false | form feed의 억제
sh | bool | false | burst 페이지 헤더의 출력 억제
sr | str | NULL | 수신되는 각 데이터 파일의 통계 정보를 보관 유지하는 파일명
ss | str | NULL | 송신되는 각 데이터 파일의 통계 정보를 보관 유지하는 파일명
st | str | status | 상태 파일명
tf | str | NULL | troff 데이터용 필터 (cat phototypesetter)
tr | str | NULL | 큐가 하늘때에 인쇄하는 트레이라 캐릭터 라인
vf | str | NULL | 라스터 이미지용 필터

2 캐릭터의 케이파비리티는, 다른 읽기 쉬운 이름이 있습니다.
짧은 형식 긴 형식
af | acct.file
br | tty.rate
cf | filt.cifplot
ct | remote.timeout
df | filt.dvi
du | daemon.user
ff | job.formfeed
fo | job.topofform
gf | filt.plot
hl | banner.last
if | filt.input
lf | spool.log
lo | spool.lock
lp | tty.device
mc | max.copies
ms | tty.mode
mx | max.blocks
nf | filt.ditroff
of | filt.output
pc | acct.price
pl | page.length
pw | page.width
px | page.pwidth
py | page.plength
rc | remote.resend_copies
rf | filt.fortran
rg | daemon.restrictgrp
rm | remote.host
rp | remote.queue
rs | daemon.restricted
rw | tty.rw
sb | banner.short
sc | job.no_copies
sd | spool.dir
sf | job.no_formfeed
sh | banner.disable
sr | stat.recv
ss | stat.send
st | spool.status
tf | filt.troff
tr | job.trailer
vf | filt.raster

로컬 라인 프린터의 드라이버가 인덴트를 서포트하고 있다면, 프린터 demon는 그 사용법을 이해하지 않으면 안됩니다.

필터
lpd(8) demon는 filters 의 파이프라인을 작성해, 다양한 타입의 프린터용으로 처리를 실시합니다. 필터는 lpr(1) 에 건네받는 플래그에 응해 선택됩니다. 파이프라인은 다음과 같이 설정됩니다.

    p	pr | if	통상 텍스트 + pr(1)
    none	if	통상 텍스트
    c	cf	cifplot
    d	df	DVI (tex)
    g	gf	plot(3)
    n	nf	ditroff
    f	rf	Fortran
    t	tf	troff
    v	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 (으)로부터 등장했습니다.