ementa v -15-69a- stty-option-list. Esli vy ne vklyuchaete harakteristiki al'terna- tivnogo porta printera, to v tablice budet ispol'zovat'sya spi- sok po umolchaniyu. V kachestve primera dopustim, chto vash printer budet ispol'- zovat'sya dlya pechati graficheskih dannyh, togda simvoly podachi stroki dolzhny byt' vyhodnymi otdel'no bez dobavleniya vozvra- ta-karetki. Sleduet vvesti sleduyushchuyu komandu:  /usr/lib/lpadmin -p printer-name -o "stty=-onlcr" Zametim, chto otdel'nye kavychki opushcheny, tak kak v spiske imeet- sya lish' odin element. -15-70- V drugom primere dopustim, chto vash printer trebuet nechet- noj chetnosti dlya dannyh, kotorye peresylayutsya na nego. Sleduet vvesti sleduyushchuyu komandu: ¬2/usr/lib/lpadmin -p ¬1printer-name -o "stty='parenb parodd cs7'"  Nastrojka bazy dannyh terminfo Obsluzhivanie pechati osnovyvaetsya na standartnom interfejse i baze dannyh terminfo pri inicializacii kazhdogo printera i us- tanovke vybrannogo razmera stranicy, shaga simvolov, shaga stroki i nabora simvolov. Takim obrazom, obychno dostatochno imet' kor- rektnyj element v baze dannyh terminfo dlya dobavleniya novogo printera dlya obsluzhivaniya printera. Neskol'ko elementov dlya rasprostranennyh printerov soderzhatsya v elementah bazy dannyh terminfo s paketom obsluzhivaniya pechati. Kazhdyj printer identificiruetsya v baze dannyh terminfo ko- rotkim imenem. |tot vid imeni identichen vidu imeni, ispol'zue- momu dlya ustanovki peremennoj obolochki TERM, naprimer, AT&T mo- deli 455 identificiruetsya imenem. Esli vy ne mozhete najti element terminfo dlya vashego prin- tera: vam sleduet dobavit' ego. Esli vy ne sdelaete eto, vy mo- zhete eshche ispol'zovat' printer s obsluzhivaniem pechati, no vy ne mozhete poluchit' avtomaticheskij vybor razmera stranic, shaga i nabora simvolov i u vas mogut vozniknut' problemy pri otslezhi- vanii nabora printerov v korrektnyh rezhimah dlya kazhdogo zaprosa pechati. Drugaya vozmozhnost', kotoruyu mozhno ispol'zovat' vmesto obnovleniya elementa terminfo, sostoit v nastrojke interfejsnoj programmy, ispol'zuemoj s printerom. Smotrite sleduyushchij razdel dlya polucheniya svedenij o tom, kak eto delat'. Imeyutsya sotni elementov, kotorye mogut byt' opredeleny dlya kazhdogo terminala ili printera v baze dannyh terminfo. Odnako obsluzhivanie pechati ispol'zuet menee poloviny iz nih, a bol'- shinstvu printerov neobhodimo dazhe men'shee kolichestvo. V tablice 15.9 perechisleny elementy, kotorye neobhodimo opredelit' (kak podhodyashchie dlya printera) dlya dobavleniya novogo printera k obs- luzhivaniyu pechati. -15-71-  Tablica 15.9 Opredelenie terminfo |lement terminfo ------------------------------------------- Bulevskie znacheniya daisy printer trebuet, chtoby operator izmenil nabor simvolov CHisla bufsz  chislo bajtov, buferizuemyh pered pechat'yu cols  chislo kolonok v stroke it  metki tabulyacii nachal'no raspolagayutsya cherez kazhdyj promezhutok # probelov lines  chislo strok na stranice orc  gorizontal'noe razreshenie v edinicah na simvol orhi  gorizontal'noe razreshenie v edinicah na dyujm orl  vertikal'noe razreshenie v edinicah na simvol orvi  vertikal'noe razreshenie v edinicah na dyujm cps  srednyaya skorost' pechati v simvolah v sekundu Stroki: cr  vozvrat karetki cpi  izmenenie chisla simvolov na dyujm lpi  izmenenie chisla strok na dyujm chr  izmenenie gorizontal'nogo razresheniya cvr  izmenenie vertikal'nogo razresheniya csmn  spisok imen nabora simvolov mgs  sbros vseh polej (verh, niz i kraya) hpa  absolyutnaya gorizontal'naya poziciya cud1  nizhe na odnu stroku cuf1  karetka sprava swidm  razreshenie pechati dvojnoj shiriny rwidm  otmena pechati dvojnoj shiriny ff  vydacha stranicy is1  stroka inicializacii printera is2  stroka inicializacii printera is3  stroka inicializacii printera if  imya fajla inicializacii -15-71a- iprog  imya puti programmy inicializacii cud  peresylka karetki nizhe na # strok cuf  peresylka karetki vpravo na # stolbcov rep  povtorenie simvola # raz vpa  absolyutnaya vertikal'naya poziciya -15-72 scs  vybor nabora simvolov smgb  zadanie nizhnego polya tekushchej stroki smgbp  zadanie nizhnego polya smgl  zadanie levogo polya dlya tekushchej kolonki smglp  zadanie levogo polya smgr  zadanie pravogo polya dlya tekushchej kolonki smgrp  zadanie pravogo polya smgt  zadanie verhnego polya tekushchej stroki smgtp  zadanie verhnego polya scsd  nachalo opredeleniya nabora simvolov ht  simvol tabulyacii dlya sleduyushchego 8-simvol'nogo prekrashcheniya tabulyacii Obratites' k stranice rukovodstva dlya polucheniya podrobnoj informacii o strukture fajla terminfo(M) v dokumente User's Reference i o sozdanii elementa baza dannyh terminfo dlya novogo printera. Posle togo, kak vy sozdali novyj element, vam nuzhno kompi- lirovat' ego v novoj baze dannyh s pomoshch'yu programmy tic. Vve- dite tol'ko sleduyushchuyu komandu: ¬2 tic filename filename - eto imya fajla, soderzhashchego element terminfo, kotoryj vy sozdali dlya novogo printera. (|ta programma imeetsya v Utili- tah Informacii Terminala). Primechanie Obsluzhivanie pechati LP stanovit'sya bolee effektivnym pri is- pol'zovanii kesh-informacii iz bazy dannyh terminfo. Esli vy dobavlyaete ili udalyaete elementy terminfo ili izmenyaete zna- cheniya, kotorye upravlyayut ustanovkoj shaga, shirinoj stranicy i dlinoj ili naborami simvolov, to vam sleduet ostanovit' i restartovat' obsluzhivanie pechati tak, chtoby ono smoglo chitat' novuyu informaciyu. -15-73-  Kak pisat' interfejsnuyu programmu Primechanie Esli u vas imeetsya interfejsnaya programma, kotoruyu vy ispol'- zuete s Utilitami Spulera LP v UNIX Sistema Y Izdanie 3.2, ona dolzhna rabotat' takzhe s obsluzhivaniem pechati. Zametim, odnako, chto neskol'ko vozmozhnostej -o standartizovano i pere- daetsya kazhdoj interfejsnoj programme. Oni mogut vzaimodejs- tvovat' s analogichnym obrazom imenovannymi vozmozhnostyami, ko- torye ispol'zuet vasha interfejsnaya programma. Esli u vas imeetsya printer, kotoryj ne obespechen prostym dobavleniem elementa v bazu dannyh terminfo, ili zhe vashi pot- rebnosti pechati ne obespecheny standartnoj interfejsnoj program- moj, vy mozhete ispol'zovat' sobstvennuyu interfejsnuyu programmu. Imeet smysl nachat' so standartnoj interfejsnoj programmy i iz- menyat' ee pri neobhodimosti, chem nachinat' s nulya. Vy mozhete najti ee kopiyu pod imenem /usr/spool/lp/model/standard. CHto delaet interfejsnaya programma? Lyubaya interfejsnaya programma vypolnyaet sleduyushchie zadachi: - Inicializiruet port printera pri neobhodimosti. Obychnaya interfejsnaya programma ispol'zuet dlya etogo komandu stty. - Inicializiruet fizicheskij printer. Obychnaya interfejsnaya programma ispol'zuet terminfo i peremennuyu obolochki TERM dlya polucheniya upravlyayushchih posledovatel'nostej, chtoby sde- lat' eto. - Pechataet stranicu zagolovka pri neobhodimosti. - Pechataet korrektnoe chislo kopij soderzhimogo zaprosa. Interfejsnaya programma ne otvechaet za otkrytie porta prin- tera. |to delaetsya obsluzhivaniem pechati, kotoroe obrashchaetsya k vyzyvaemomu printeru. Soedinenie porta printera daetsya inter- fejsnoj programme, kak standartnyj vyhod, i printer rassmatri- vaetsya kak upravlyayushchij terminal dlya interfejsnoj programmy ta- kim obrazom, chto zavisanie porta privodit k posylke signala SIGHUP interfejsnoj programme. Nastroennaya interfejsnaya programma ne dolzhna zavershat' so- edinenie printera ili lyubym drugim sposobom -15-74- razinicializirovat' printer. |to pozvolyaet obsluzhivaniyu pechati ispol'zovat' interfejsnuyu programmu tol'ko pri podgotovke prin- tera i porta printera, togda kak pechat' soderzhimogo osushchestvlya- etsya drugimi sredstvami, naprimer, obsluzhivaniem pechati dlya preprintnyh obrazcov vyravnivaniya formy. Kak ispol'zuetsya interfejsnaya programma? Kogda obsluzhivanie pechati napravlyaet vyhodnoj zapros na printer, interfejsnaya programma dlya printera vyzyvaetsya sleduyu- shchim obrazom: ¬2/usr/spool/lp/admins/lp/interface/P id user title copies options file1 file2 ... Argumentami interfejsnoj programmy yavlyayutsya: P  imya printera id  identifikator zaprosa, vozvrashchaemyj lp user  imya podklyucheniya pol'zovatelya, sdelavshego zapros title  vyborochnyj titul, zadannyj pol'zovatelem copies  chislo kopij, zaproshennyh pol'zovatelem options spisok vozmozhnostej, razdelennyh probelami, zadannyj pol'zovatelem, ili nabor obsluzhivaniya pechati file  polnoe imya puti pechataemogo fajla Kogda vyzyvaetsya interfejsnaya programma, ee standartnyj vhod beretsya iz /dev/null, standartnyj vyhod napravlyaetsya portu printera, a standartnyj vyhod oshibok napravlyaetsya v fajl, pere- davaemyj pol'zovatelyu, poslavshemu zapros pechati. Standartnyj interfejs raspoznaet sleduyushchie znacheniya v spiske vozmozhnostej: nobanner |ta vozmozhnost' ispol'zuetsya, chtoby propustit' pechat' stranicy zagolovka. Bez nee stranica za- golovka pechataetsya. nofilebreak |ta vozmozhnost' ispol'zuetsya dlya propuska raz- bivki stranic mezhdu otdel'nymi fajlami dannyh, bez nee razbivka delaetsya mezhdu kazhdym fajlom v soderzhimom zaprosa pechati. cpi=decimal-number1 - desyatichnoe chislo lpi=decimal-number2 - desyatichnoe chislo -15-75- |ti vozmozhnosti zaprashivayut pechat' s decimal-number1 chislom kolonok na dyujm i s decimal-number2 chislom strok na dyujm sootvetstvenno. Standartnaya interfejs- naya programma vydelyaet iz bazy dannyh terminfo uprav- lyayushchie posledovatel'nosti, neobhodimye dlya iniciali- zacii printera po obrabotke shaga simvola i stroki. Slova pica, elite i compress - eto dopustimye zameny dlya decimal-number1 i yavlyayutsya sinonimami dlya 10 stolbcov na dyujm, 12 stolbcov na dyujm i takogo chisla kolonok na dyujm, kotoroe vozmozhno. ¬2length=decimal-number1 ¬2width=decimal-number2 |ti vozmozhnosti zadayut dlinu i shirinu, sootvetstven- no, pechataemyh stranic. Standartnaya interfejsnaya programma izvlekaet iz bazy dannyh terminfo upravlyayu- shchie posledovatel'nosti, neobhodimye dlya inicializacii printera po obrabotke dliny stranicy i shiriny strani- cy. ¬2stty='stty-option-list' stty-option-list - ispol'zuetsya posle spiska po umolcha- niyu kak argumenty v komande stty. Spisok po umolchaniyu ispol'zuetsya dlya zadaniya konfiguracii porta po umol- chaniyu, dopolnitel'nyj spisok, peredavaemyj interfejs- noj programme po umolchaniyu, ispol'zuetsya dlya izmene- niya konfiguracii pri neobhodimosti. Ukazannye vyshe vozmozhnosti zadayutsya libo pol'zovatelem pri vydache zaprosa porta, libo obsluzhivaniem pechati iz znachenij umolchaniya, ustanavlivaemyh administratorom dlya printera (cpi, lpi, length, width, stty) ili dlya preprintnoj formy, ispol'zue- moj v zaprose (cpi, lpi, length, width). Dopolnitel'naya informaciya o konfiguracii printera pereda- etsya interfejsnoj programme v peremennyh obolochki: ¬2 TERM=printer-type |ta peremennaya obolochki zadaet tip printera. Znachenie ispol'zuetsya kak klyuch dlya polucheniya informacii o voz- mozhnostyah printera iz rasshirennoj bazy dannyh terminfo. ¬2 FILTER='pipeline' (konvejer) |ta peremennaya obolochki zadaet ispol'zovanie fil'tra dlya posylki soderzhimogo zaprosa na printer, fil'tru peredaetsya upravlenie printerom. -15-76- ¬2 CHARSET=character-set (nabor simvolov) |ta peremennaya obolochki zadaet nabor simvolov, is- pol'zuemyh pri pechati soderzhimogo zaprosa pechati. Standartnaya interfejsnaya programma izvlekaet iz bazy dannyh terminfo upravlyayushchie posledovatel'nosti, neob- hodimye dlya vybora nabora simvolov. Nastroennaya interfejsnaya programma dolzhna libo ignoriro- vat' eti vozmozhnosti i peremennye obolochki, libo dolzhna raspoz- navat' ih i sootvetstvuyushchim obrazom obrabatyvat'. Nastrojka interfejsnoj programmy Vy hotite ubedit'sya, chto nastroennaya interfejsnaya program- ma zadaet korrektnye rezhimy stty (harakteristiki terminala, ta- kie kak skorost' peredachi ili vyhodnye parametry). Standartnaya interfejsnaya programma delaet eto, i vy mozhete sledovat' soot- vetstvuyushchim obrazom. Smotrite razdel, kotoryj nachinaetsya s kom- mentariya obolochki: ## Initialize the printer port (inicializirujte port printera) Sledujte kodu, ispol'zuemomu v standartnoj interfejsnoj programme. Ona ustanavlivaet rezhimy po umolchaniyu i nastroennye rezhimy, zadannye obsluzhivaniem pechati ili pol'zovatelem v stro- ke, analogichnoj sleduyushchej: ¬2 stty ¬1mode options 0<&1 (rezhim vozmozhnosti) |ta stroka komandy beret standartnyj vhod dlya komandy stty iz porta printera. Primer stroki komandy stty, kotoraya za- daet skorost' peredachi 1200 i ustanavlivaet nekotorye rezhimy vozmozhnostej, pokazan dalee:  stty -parenb -parodd 1200 cs8 cread clocal ixon 0<&1 Odnoj iz harakteristik porta, ne ustanavlivaemoj standart- noj interfejsnoj programmoj, yavlyaetsya upravlenie potokom appa- ratury. Kod dlya standartnoj interfejsnoj programmy predpolaga- et, gde eta i drugie harakteristiki porta printera -15-76a- mogut byt' ustanovleny. Smotrite razdel, kotoryj nachinaetsya kommentariem obolochki: # Here you may want to add other port initialization code (Zdes' vy mozhete zahotet' dobavit' drugoj kod inicializacii porta). Poskol'ku razlichnye printery imeyut raznoe chislo stolbcov, ubedites', chto zagolovok i "hvost" dlya kazhdoj interfejsnoj programmy sootvetstvuyut vashemu printeru. Standartnaya interfejs- naya programma pechataet zagolovok, kotoryj sootvetstvuet 80-stolbcovoj stranice (krome zagolovka pol'zovatelya, kotoryj mozhet byt' dlinnee). Smotrite razdel v kode dlya standartnoj in- terfejsnoj programmy, nachinayushchijsya s kommentariya obolochki -15-77- ## Print the banner page (pechatajte stranicu zagolovka) Nastroennaya interfejsnaya programma dolzhna pechatat' lyubye soobshcheniya ob oshibkah, svyazannye s pol'zovatelem, na standartnom vyhode ili na standartnom vyvode oshibok. Soobshcheniya, poslannye na standartnyj vyvod oshibok, napravlyayutsya elektronnoj pochtoj pol'zovatelyu, soobshcheniya, pechataemye na standartnom vyhode, za- kanchivayutsya na napechatannoj stranice, gde oni mogut chitat'sya pol'zovatelem, kogda on vybiraet vyhod. Posle zaversheniya pechati vasha interfejsnaya programma dolzhna zavershit'sya s kodom, soobshchayushchim sostoyanie zadaniya pechati. Kody vyhoda interpretiruyutsya obsluzhivaniem pechati sleduyushchim obrazom: Tablica 15.10 Kody vyhoda Kod Znachenie dlya obsluzhivaniya pechati ------------------------------------------- 0 Zapros pechati zavershilsya uspeshno. Esli proizoshel sboj printera, on sbrasyvaetsya. 1-127 Voznikla problema pri pechati dannogo otdel'nogo zap- rosa (naprimer, slishkom mnogo nepechataemyh simvolov ili zapros prevyshaet vozmozhnosti printera). |ta prob- lema ne vliyaet na posleduyushchie zaprosy pechati. Obslu- zhivanie pechati izveshchaet lico, poslavshee zapros o voz- niknovenii oshibki pechati. Esli proizoshel sboj printera, on sbrasyvaetsya. 128 Rezerviruetsya dlya vnutrennego ispol'zovaniya obsluzhi- vaniem pechati LP. Interfejsnye programmy ne dolzhny zavershat'sya s etim kodom. 129 Sboj printera proizoshel pri pechati zaprosa. |ta prob- lema vliyaet na posleduyushchie zaprosy pechati. Esli voss- tanovlenie pri sboyah printera zastavlyaet obsluzhivanie pechati zhdat' administratora dlya registracii problemy, ono zakryvaet printer. Esli vosstanovlenie pri sboe prodolzhaet pechat', obsluzhivanie pechati ne zakryvaet printer, no pytaetsya pechatat' snova cherez neskol'ko minut. >129 |ti kody rezerviruyutsya dlya vnutrennego ispol'zovaniya obsluzhivaniem pechati. Interfejsnye programmy ne dolzh- ny zavershat'sya s kodami v etom diapazone. Kak pokazyvaet tablica odnim iz sposobov izveshcheniya administratora o sboe printera yavlyaetsya zavershenie s kodom 129. -15-78- K sozhaleniyu, esli interfejsnaya programma zavershaetsya, obsluzhi- vanie pechati ne imeet drugogo vybora, krome perepechatki zaprosa s nachala, kogda sboj sbrasyvaetsya. Drugim sposobom polucheniya preduprezhdeniya administratorom, no bez neobhodimosti perepechat- ki vsego zaprosa, yavlyaetsya posylka interfejsnoj programmoj so- obshcheniya o sboe obsluzhivaniyu pechati, no s ozhidaniem sbrosa sboya. Posle sbrosa sboya interfejsnaya programma mozhet vozobnovit' pe- chat' fajla pol'zovatelya. Posle zaversheniya pechati ona mozhet vy- dat' nulevoj kod vyhoda takim obrazom, kak budto sboj ne prois- hodil. Dopolnitel'noe dostoinstvo sostoit v tom, chto interfejsnaya programma mozhet registrirovat' registraciyu sboya avtomaticheski, tak, chto administrator ne dolzhen otkryvat' prin- ter. Soobshcheniya o sboe mogut posylat'sya obsluzhivaniyu pechati s pomoshch'yu programmy lp.tell. Ssylki osushchestvlyayutsya peremennoj obolochki $LPTELL v standartnom interfejsnom kode. |ta programma beret standartnyj vhod i posylaet ego obsluzhivaniyu pechati, gde on pomeshchaetsya v soobshchenie, kotoroe preduprezhdaet administratora o sboe printera. Esli standartnyj vhod printera pust, lp.tell ne iniciiruet preduprezhdenie. Proverim standartnyj interfejsnyj kod srazu posle etih kommentariev dlya primera togo, kak ispol'- zuetsya programma lp.tell ($LPTELL): # Here's where we set up the $LPTELL program to capture # fault messages. # Here's where we print the file. (dalee my zaprashivaet u programmy $LPTELL perehvat soobshchenij o sboe. Dalee my pechataem fajl). Dlya special'nogo koda vyhoda 129 ili programmy lp.tell ot- sutstvuet neobhodimost' dlya interfejsnoj programmy zakryvat' sam printer. Vasha interfejsnaya programma mozhet zakryt' printer napryamuyu, no pri etom perekryvaetsya mehanizm preduprezhdeniya o sboyah. Preduprezhdeniya posylayutsya tol'ko, esli obsluzhivanie pe- chati registriruet sbojnyj printer, a special'nyj kod vyhoda programma lp.tell - eto osnovnye instrumenty registracii. -15-78a- Esli obsluzhivanie pechati dolzhno prervat' pechat' fajla v lyuboe vremya, ono otmenyaet interfejsnuyu programmu s signalom 15 (smotrite kill(C) v dokumente User's Reference i signal(S) v dokumente Programmer's Referense). Esli interfejsnaya programma otmenyaetsya pri poluchenii lyubogo drugogo signala, to obsluzhiva- nie pechati predpolagaet, chto posleduyushchie zaprosy pechati ne pod- verzheny vliyaniyu i prodolzhayut ispol'zovat' printer. Obsluzhi- vanie pechati izveshchaet lico, poluchivshee zapros, o tom, chto on ne zavershilsya uspeshno. Zapusk signalov SIGHUP, SIGINT, SIGOUT, SIGPIPE (obrashcheniya nomer 1, 2, 3 i 13) ignoriruetsya, kogda vyzyvaetsya interfejs. Standartnyj interfejs provodit izmeneniya dlya perehvata etih signalov v sootvetstvuyushchie momenty. Standartnyj interfejs rass- matrivaet poluchenie etih signalov kak to, chto u printera voz- nikla problema, i vydaet izveshchenie o sboe. |to ta programma, kotoruyu obsluzhivanie pechati ispol'zuet dlya upravleniya printerom kazhdyj raz, kogda pechataetsya fajl. Ona vypolnyaet chetyre osnov- nye zadachi: - Inicializaciya porta printera (soedinenie mezhdu komp'yute- rom i printerom). -15-79- - Inicializaciya printera (vosstanovlenie ego v normal'noe sostoyanie v sluchae, esli ranee napechatannyj fajl ostalsya v neobychnom sostoyanii) i zadaniya shaga simvolov, shaga stroki, razmera stranicy i nabora simvolov, zaproshennyh pol'zova- telem. - Pechat' stranicy zagolovka, i - Vypolnenie fil'tra dlya pechati fajla. Kak dobavit' interfejsnuyu programmu Esli vy ne vybrali interfejsnuyu programmu, to ispol'zuetsya standartnaya, obespechivaemaya obsluzhivaniem pechati. |togo dolzhno byt' dostatochno dlya bol'shej chasti potrebnostej pechati. Esli vy hotite, vy mozhete izmenit' ee dlya vashih nuzhd ili polnost'yu pe- repisat' vashu sobstvennuyu interfejsnuyu programmu i dalee zadat' ee pri dobavlenii novogo printera. Esli vy planiruete ispol'zovanie standartnoj interfejsnoj programmy, net nuzhdy zadavat' ee pri dobavlenii printera. Odna- ko, esli vy ispol'zuete druguyu interfejsnuyu programmu, vy mozhe- te libo ssylat'sya na nee po ee polnomu imeni puti, libo po dru- gomu printeru, ispol'zuya tu zhe samuyu interfejsnuyu programmu. Dlya identifikacii nastroennoj interfejsnoj programmy po imeni dajte imya printera i imya puti interfejsnoj programmy v sleduyushchem vide: ¬2 /usr/lib/lpadmin -p ¬1printername ¬2-i pathname imya printera imya puti Dlya identifikacii nastroennoj interfejsnoj programmy ssyl- koj na drugoj printer dajte imena printeram sleduyushchim obrazom: ¬2 /usr/lib/lpadmin -p ¬1printername1 ¬2-e printername2 imya printera1 imya printera2 printername1 dolzhno byt' zameshcheno imenem printera, kotoryj vy dobavlyaete, printername2 dolzhno byt' zameshcheno imenem printera, uzhe dobavlennym, kotoryj ispol'zuet nastroennuyu interfejsnuyu programmu. -15-79a- Dlya identifikacii interfejsnoj programmy po ssylke na mo- del'nuyu interfejsnuyu programmu dajte imya printera i imya modeli sleduyushchim obrazom: ¬2 /usr/lib/lpadmin -p ¬1printername ¬2-m modelname imya printera imya modeli  Kak pisat' fil'tr Fil'tr ispol'zuetsya obsluzhivaniem pechati kazhdyj raz, kogda on dolzhen pechatat' tip fajla, kotoryj ne prinimaetsya printerom. V to vremya, kak fil'tr mozhet byt' stol' prost ili stol' slozhen, -15-80- kak eto neobhodimo, sushchestvuet tol'ko neskol'ko vneshnih trebo- vanij: - Fil'tr dolzhen poluchit' soderzhimoe fajla pol'zovatelya iz standartnogo vhoda i poslat' preobrazovannyj fajl na stan- dartnyj vyhod. - Medlennyj fil'tr mozhet poslat' soobshcheniya ob oshibkah v fajle na standartnyj vyhod oshibok. Bystryj fil'tr ne dol- zhen posylat' soobshcheniya, kak eto opisano nizhe. Soobshchenie ob oshibkah ot medlennogo fil'tra budut sobirat'sya i posylat'- sya pol'zovatelyu, poslavshemu fajl na pechat'. - Esli medlennyj fil'tr otmenen iz-za polucheniya signala, zapros pechati zavershaetsya, i pol'zovatel', poslavshij zap- ros, izveshchaetsya. Bolee togo, esli medlennyj fil'tr zaver- shaetsya s nenulevym kodom vyhoda, zapros pechati zavershaetsya i pol'zovatel' izveshchaetsya. Kody vyhoda ot bystryh fil'trov obrabatyvayutsya po-drugomu, kak opisano pozdnee. - Fil'tr ne dolzhen zaviset' ot drugih fajlov, kotorye obychno ne dostupny obychnomu pol'zovatelyu. Esli fil'tr za- vershaetsya avarijno, kogda pol'zovatel' vypolnyaet ego nap- ryamuyu, on budet zavershat'sya avarijno i pri vypolnenii obs- luzhivaniya pechati. Razdel "Fil'try" opisyvaet, kak dobavit' fil'tr k obsluzhi- vaniyu pechati. Imeetsya neskol'ko dopolnitel'nyh trebovanij, esli fil'tr dolzhen takzhe registrirovat' sboi printera: - Esli on mozhet, on dolzhen zhdat' sbrosa sboya pered zaver- sheniem. Dopolnitel'no on dolzhen prodolzhat' pechat' s verh- nej chasti stranicy, gde pechat' ostanovilas' posle sbrosov sboya. Esli eto ne namereniya administratora, to obsluzhiva- nie pechati ostanavlivaet fil'tr pered preduprezhdeniem ad- ministratora. - On dolzhen poslat' soobshcheniya sboya printera na standartnyj vyhod oshibok, kogda raspoznaetsya sboj. On ne dolzhen zaver- shat'sya, no mozhet zhdat', kak eto opisano vyshe. - On ne dolzhen posylat' soobshcheniya ob oshibkah v fajl na vy- hod standartnyh oshibok. Lyubye soobshcheniya na standartnom vy- hode oshibok mogut generirovat' sboj printera. Ih sleduet vklyuchit' v standartnyj vyhodnoj potok, gde oni mogut byt' schitany pol'zovatelem. - On dolzhen zavershit'sya nulevym kodom vyhoda, esli fajl pol'zovatelya zavershen (dazhe, esli oshibki v fajle -15-80a- prepyatstvuyut korrektnoj pechati). - On dolzhen zavershat'sya nenulevym kodom vyhoda tol'ko, es- li sboj printera preduprezhdaet ego ot zaversheniya fajla. - Posle dobavleniya v tablicu fil'tra on dolzhen byt' dobavlen, kak bystryj fil'tr. Smotrite razdel "Opredelenie fil'tra" pod zagolovkom "Fil'try" v dannoj glave. -15-81-  SPECIALXNYE VOZMOZHNOSTI KONFIGURACII Hotya znacheniya po umolchaniyu dlya konfiguracii printera obych- no dostatochny dlya bol'shinstva potrebnostej, imeetsya ryad vozmozh- nostej dlya konfiguracii otdel'nyh aspektov operacij pechati. Oni vklyuchayut takie vozmozhnosti, kak preduprezhdenie o sboe i vossta- novlenie. Dalee sleduet spisok dopolnitel'noj informacii, koto- raya mozhet byt' dana dlya opredeleniya konfiguracii kazhdogo prin- tera: - Tip printera - Tipy soderzhimogo - Metod soedineniya - Nabory simvolov ili pechatayushchie mehanizmy - Preduprezhdenie o sboe - Vosstanovlenie pri sboe - Ispol'zovanie ogranichenij - Atributy pechati po umolchaniyu Vam neobhodimo dat' ochen' malo etoj informacii dlya dobav- leniya novogo printera k obsluzhivaniyu pechati; odnako, chem bol'she informacii vy obespechivaete, tem luchshe upravlyaetsya printer dlya vas i tem luchshe on mozhet obsluzhivat' lyudej s pomoshch'yu obsluzhiva- niya pechati. Opisaniya v sleduyushchih razdelah pomogut vam ponyat', chto eta informaciya o konfiguracii printera oznachaet, i kak ona ispol'- zuetsya, poetomu vy mozhete reshit', kak zadavat' etu informaciyu pri dobavlenii printera. Vy mozhete rassmotret' kazhdyj iz razde- lov v dannom poryadke i korrektno konfigurirovat' printer za neskol'ko etapov, vy mozhete ozhidat', poka vy prochtete vse raz- dely pered dobavleniem printera, tak, chto vy mozhete sdelat' eto za odin shag. Tip printera Tip printera vazhen dlya pravil'nogo ispol'zovaniya printera. Obsluzhivanie printera ispol'zuet tip printera dlya vydeleniya in- formacii o printere iz bazy dannyh terminfo. |ta informaciya opisyvaet vozmozhnosti printera, tak, chto vy mozhete byt' pre- duprezhdeny, esli nekotoraya iz obespechivaemoj vami informacii konfiguracii ne sootvetstvuet printeru. |ta informaciya takzhe opisyvaet upravlyayushchie dannye dlya ispol'zovaniya pri inicializacii printera pered pechat'yu fajla. Esli vam ne trebuetsya zadat' tip printera, vy mozhete zadat' tot tip, kotoryj luchshe obespechivaet- sya sredstvami pechati. -15-82- Tip printera - eto obshchee imya printera. Zadavajte tip prin- tera sleduyushchim obrazom: ¬2 /usr/lib/lpadmin -p ¬1printername ¬2-T printer-type  sysadmsh pol'zovateli vybirayut: Printer-->Configure-->Parameters (Printery-->Konfiguraciya-->Parametry) Esli vy ne opredelyaete tip printera, ispol'zuetsya po umol- chaniyu unknown. Pri etom formiruyutsya pustye rezul'taty, kogda obsluzhivanie pechati prosmatrivaet informaciyu o printere, tak, chto obsluzhivanie pechati ne mozhet proverit' opredelennye zaprosy ili inicializirovat' printer.  Tipy soderzhimogo V to vremya, kak informaciya o tipe printera soobshchaet obslu- zhivaniyu pechati, kakoj tip printera dobavlyaetsya, informaciya o tipe soderzhimogo soobshchaet obsluzhivaniyu pechati, kakie tipy faj- lov mogut byt' napechatany. Bol'shaya chast' printerov mozhet pecha- tat' tol'ko odin tip fajla; dlya nih tip soderzhimogo veroyatno identichen tipu printera. Nekotorye printery, odnako, mogut pri- nimat' neskol'ko razlichnyh tipov fajlov i pechatat' ih soderzhi- moe korrektno. Pri dobavlenii etogo tipa printera vam sleduet perechislit' imena tipov soderzhimogo, kotorye prinimayutsya. Kogda fajl peredaetsya obsluzhivaniyu pechati na pechat', obs- luzhivanie pechati ishchet printer, sposobnyj obrabatyvat' zadanie. Obsluzhivanie pechati mozhet identificirovat' sootvetstvuyushchij printer, libo cherez imya tipa-soderzhimogo, libo cherez imya prin- ter-tip. Poetomu vy mozhete zadat' lyuboe imya (ili ne zadavat' imya) pri peredache fajla na pechat'. Imena soderzhimoe-tip mogut vyglyadet' analogichno imenam printer-tip, no vy svobodny v vybore imen, kotorye chto-to zna- chat dlya vas i lyudej, ispol'zuyushchih printer. (Imena simple, terminfo i any raspoznayutsya kak imeyushchie osoboe znachenie dlya ob- sluzhivaniya pechati; sleduet ispol'zovat' ih sootvetstvuyushchim ob- razom). Imena dolzhny soderzhat' ne bolee 14 simvolov i mogut vklyuchat' tol'ko bukvy, cifry i podcherkivaniya. Esli odin tip so- derzhimogo pechataetsya razlichnymi tipami printerov, vam sleduet ispol'zovat' te zhe imena tipa soderzhimogo pri dobavlenii etih printerov. |to -15-82a- proshche dlya lyudej, ispol'zuyushchih printery, tak kak oni mogut is- pol'zovat' to zhe imya dlya identifikacii tipa fajla, kotoryj oni hotyat pechatat' nezavisimo ot naznacheniya pechati. Naprimer nekotorye proizvoditeli izgotovlyayut printery, ko- torye prinimayut fajly PostScript. Tak kak etim printeram mogut trebovat'sya razlichnye tipy printerov, to kazhdyj iz nih dolzhen byt' pravil'no inicializirovan (v predpolozhenii, chto upravlyayu- shchie posledovatel'nosti inicializacii razlichny), oni mogut imet' vozmozhnost' obrabotki odnogo i togo zhe tipa vhodnogo fajla, ko- toryj vy vyzyvaete, vozmozhno postscript. Drugoj primer, nekoto- rye proizvoditeli izgotovlyayut printery, kotorye prinimayut -15-83- upravlyayushchie posledovatel'nosti ANSI X3.64. Odnako printery mo- gut ne obespechivat' vse vozmozhnosti ANSI ili mogut obespechivat' razlichnye nabory vozmozhnostej. Vy mozhete zahotet' prisvoit' razlichnye imena tipu soderzhimogo dlya etih printerov, chtoby raz- lichat' ih. Vy ne dolzhny perechislyat' tipy soderzhimogo dlya printera. Esli vy ne delaete eto, tip printera ispol'zuetsya kak imya tipa soderzhimogo, kotoroe printer mozhet obrabatyvat'. Esli vy ne za- dali tip printera, obsluzhivanie pechati predpolagaet, chto prin- ter mozhet pechatat' tol'ko fajly tipa soderzhimogo simple. |to mozhet byt' dostatochnym, esli vy trebuete, chtoby lyudi vybirali pravil'nyj printer i byli uvereny, chto fajly pravil'no podgo- tovleny dlya printera pered ih posylkoj na pechat'. Naibolee obshchij tip fajla v sistemah UNIX izvesten kak simple. Predpolagaetsya, chto etot fajl soderzhit tol'ko pechatae- mye simvoly ASCII i sleduyushchie upravlyayushchie simvoly: Vozvrat Peresylaet nositel' obratno na odnu poziciyu kro- me nachala stroki Metka Peresylaet nositel' na sleduyushchuyu metku tabulya- tabulyacii cii, kotoraya na bol'shinstve printerov raspolagaetsya cherez kazhdye 8 kolonok Podacha stroki Peresylaet nositel' v nachalo sleduyushchej stroki (mozhet trebovat' special'nyh ustanovok porta dlya nekotoryh printerov - smotrite sleduyushchij razdel "Harakteristiki porta printera") Podacha formy Peresylaet nositel' k nachalu sleduyushchej stranicy Vozvrat karetkiPeresylaet nositel' v nachalo toj zhe stroki (mo- zhet ne poluchit'sya na nekotoryh printerah) Slovo "nositel'" mozhet byt' arhaichnym dlya sovremennyh la- zernyh printerov, no pri etom vypolnyayutsya analogichnye dejstviya. Esli printer mozhet obrabatyvat' tip simple fajla, vam sleduet vklyuchit' ego v spisok tipa soderzhimogo pri dobavlenii printera i zadanii tipa (tipov) soderzhimogo, kotorye mogut obrabatyvat'- sya printerom. Esli vy ne hotite, chtoby printer prinimal fajly tipa simple, vam sleduet naznachit' al'ternativnyj spisok tipov soderzhimogo, kotorye printer mozhet prinyat'. (Tip printera - eto horoshee imya, esli drugoj tip ne podhodit). Drugim imenem tipa soderzhimogo yavlyaetsya terminfo. Ono ne otnositsya k otdel'nomu tipu fajla, a vmesto etogo otnositsya ko vsem tipam, predstavlennym v baze dannyh terminfo. Ne veroyatno, -15-83a- chto lyuboj printer imeet vozmozhnost' obrabotki vseh tipov, pere- chislennyh v baze dannyh. Odnako eto imya rezerviruetsya dlya opi- saniya vozmozhnyh sredstv fil'tra. Krome togo tip soderzhimogo any rezerviruetsya dlya opisaniya tipov fajla, kotorye fil'tr mo- zhet prinyat' ili sformirovat'. |ti imena ne sleduet ispol'zo- vat', kak tipy soderzhimogo pri dobavlenii printera. -15-84- Zadajte spisok tipov soderzhimogo sleduyushchim obrazom: ¬2 /usr/lib/lpadmin -p ¬1printername¬2 -I content-type-list (soderzhimoe-tip-spisok)  sysadmsh pol'zovateli vybirayut: Printer-->Configure-->Content (Printery-->Konfiguraciya-->Soderzhimoe) Soderzhimoe-tip-spisok - eto spisok imen, razdelennyh zapya- toj ili probelom. Esli vy ispol'zuete probely dlya razdeleniya imen, zaklyuchite ves' spisok (no ne -I) v kavychki. Esli vy ne opredelyaete tipy fajlov, kotorye mozhet prinyat' printer, to obs- luzhivanie pechati predpolagaet, chto on mozhet prinyat' tip simple i tip s tem zhe imenem, chto i tip printera (esli tip printera opredelen).  Metod soedineniya Obsluzhivanie pechati pozvolyaet vam soedinyat' vashi printery razlichnymi sposobami. Prostejshij sposob sostoit v prisoedinenii printera pryamo k komp'yuteru. Odnako, vy mozhete zahotet' soedi- nit' printery cherez set' ili cherez vybiraemyj modem, kogda oni mogut razdelyat'sya s drugimi komp'yuterami ili rabochimi stanciya- mi. Posle prisoedineniya printera k komp'yuteru ili soedineniya ih v set' i prisoedineniya seti k komp'yuteru vam sleduet opisat' metod soedineniya dlya obsluzhivaniya pechati. Metod po umolchaniyu, kotorym printery soedinyayutsya s komp'- yuterom - eto pryamoj metod soedineniya. Esli vy ispol'zuete etot metod dlya podsoedineniya printera k vashemu komp'yuteru, to obychno vam nuzhno sdelat' tol'ko sleduyushchee: dat' imya porta soedineniya. Sushchestvuyut dva metoda sozdaniya nepryamyh soedinenij: cherez vybiraemyj modem ili cherez lyuboj drugoj tip seti. Obsluzhivanie pechati ispol'zuet sistemu UUCP dlya realizacii oboih metodov nepryamyh soedinenij. Kogda ispol'zuetsya vybiraemyj modem, dolzh- ny byt' udovletvoreny tri usloviya: printer dolzhen byt' svyazan s vybiraemym modemom, vybiraemyj modem dolzhen byt' svyazan s komp'yuterom, i sistema UUCP dolzhna znat' ob etom modeme. Printery, soedinennye cherez lyuboj drugoj tip seti trebuyut, chtoby dlya kazhdogo printera zadavalos' "imya sistemy". |to imya elementa v sistemnom fajle ili svyazannom fajle. Hotya printer ne otnositsya k sisteme UNIX, sistemnyj fajl mozhet eshche -15-84a- ispol'zovat'sya dlya registracii metoda dostupa (konechno informa- ciya podklyucheniya davat'sya ne budet). Tak kak programma cu osushchestvlyaet dostup k printeru takzhe, kak obsluzhivanie pechati LP, vam sleduet zadat' fajly dlya podgo- tovki dostupa k printeru dlya cu. Komanda cu ne ispol'zuetsya dlya dostupa k printeram, no mozhet sluzhit' kak merilo pri zadanii fajlov: esli cu mozhet osushchestvit' dostup k printeru, obsluzhiva- nie pechati LP budet imet' vozmozhnost' dostupa takzhe (smotrite "Postroenie udalennoj seti s UUCP dlya polucheniya bolee -15-85- podrobnoj informacii o zadanii soedinennoj seti). Dlya dobavleniya printera, kotoryj svyazan cherez modem ili set', vvedite sleduyushchuyu komandu: ¬2 /usr/lib/lpadmin -p ¬1printer-name ¬2-U dial-info (informaciya vyzova)  sysadmsh pol'zovateli vybirayut: Printer-->Configure-->Add (Printery-->Konfiguraciya-->Dobavlenie) dial-info - libo telefonnyj nomer, nabiraemyj dlya dostizheniya modema printera, libo imya sistemy, vvodimoe v sistemnyj fajl UUCP dlya printera. Vy dolzhny vvesti komandu lpadmin s vozmozhnost'yu -U, libo - v. I, esli vy ne zadaete vozmozhnost' -l, obsluzhivanie pechati LP budet avtomaticheski vypolnyat' povtory pozdnee. Intensivnost' povtorov sostavlyaet 10 minut, esli printer zanyat i 20 minut, esli zanyat port. Intensivnost' ne nastraivaetsya. Odnako vy mo- zhete vyzvat' nemedlennyj povtor vydachej komandy enable dlya printera. Esli port ili printer budut veroyatno zanyaty na pro- dolzhitel'nyj period, vam sleduet vydat' komandu disable. Komanda lpstat -p soobshchaet prichinu dlya avarijnoj popytki vybora. Krome togo, esli vy preduprezhdaetes' o sboe vybora (smotrite razdel "Preduprezhdenie o sboe" nizhe), to soobshchenie preduprezhdeniya vydast prichinu sboya. |ti soobshcheniya identichny so- obshcheniyam ob oshibkah, formiruemym sistemoj UUCP v analogichnyh sluchayah. Smotrite razdel, nazyvaemyj "Soobshchenie ob oshibkah sos- toyaniya UUCP" v razdele "Postroenie udalennoj seti s UUCP dlya ob®yasneniya prichin sboev.  Nabory simvolov ili pechatayushchie mehanizmy Printery razlichayutsya po sposobu, kakim oni mogut pechatat', ispol'zuya razlichnye nabory shriftov. Nekotorye imeyut izmenyaemye pechatayushchie mehanizmy, drugie imeyut izmenyaemye kassety shriftov, drugie imeyut reprogrammiruemye, vybiraemye nabory simvolov. Obsluzhivanie pechati s vashej pomoshch'yu mozhet minimizirovat' vliya- nie etih razlichij na pol'zovatelej obsluzhivaniya pechati. Pri dobavlenii printera vy mozhete zadat' pechatayushchie meha- nizmy: kassety shriftov ili nabory simvolov, dostupnye dlya prin- tera. Tol'ko odin iz etih elementov predpolagaetsya k ispol'zo- vaniyu na kazhdom printere. S tochki zreniya obsluzhivaniya -15-85a- pechati, odnako, pechatayushchie mehanizmy i izmenyaemye kassety shrif- tov yavlyaetsya tem zhe samym, tak kak oni trebuyut ot vas vmesha- tel'stva i montirovaniya novogo pechatayushchego mehanizma ili kasse- ty shriftov. Takim obrazom dlya prostoty obsuzhdeniya upominayutsya tol'ko pechatayushchie mehanizmy i nabory simvolov. -15-86- Kogda vy perechislyaete dostupnye pechatayushchie mehanizmy ili nabory simvolov, vy naznachaete im imena. |ti imena nuzhny dlya vashego udobstva i udobstva pol'zovatelej. Tak kak raznye prin- tery mogut imet' shozhie pechatayushchie mehanizmy ili nabory simvo- lov, vam sleduet ispol'zovat' obshchie imena dlya vseh printerov. |to pozvolyaet licu poslat' fajl na pechat' i zaprosit' nekotoryj shrift bezotnositel'no togo, kakoj printer ispol'zuetsya ili to- go, ispol'zuetsya li pechatayushchij mehanizm ili vybiraemyj nabor simvolov. Esli printer imeet montiruemye pechatayushchie mehanizmy, vam nuzhno tol'ko perechislit' ih imena. Esli printer imeet vybirae- mye nabory simvolov, vam nuzhno perechislit' ih imena i otobra- zit' kazhdoe v imya ili chislo, unikal'no identificiruyushchee ego v baze dannyh terminfo. Vy mozhete ispol'zovat' sleduyushchuyu komandu dlya opredeleniya imen naborov simvolov, perechislennyh v baze dannyh terminfo: ¬2 TERM=¬1printer-type tput csnm 0 printer-type - eto imya rassmatrivaemogo tipa printera. Imya nu- levogo nabora simvolov (nabor simvolov poluchaetsya po umolchaniyu posle inicializacii printera) dolzhno byt' napechatano. Povtorite komandu, ispol'zuya 1, 2, 3 i tak dalee vmesto 0, chtoby uvidet' imena drugih naborov simvolov. V obshchem sluchae imena terminfo dolzhny blizko sootvetstvovat' imenam, ispol'zuemym v dokumenta- cii pol'zovatelya po printeru. Odnako, tak kak ne vse proizvodi- teli ispol'zuyut odni i te zhe imena, imena terminfo mogut otli- chat'sya ot odnogo tipa printera do sleduyushchego. Primechanie Dlya nahozhdeniya obsluzhivaniem pechati imen v baze dannyh terminfo vam sleduet zadat' tip printera. Smotrite opisannyj ranee razdel "Tip printera". Dlya zadaniya spiska imen pechatayushchego mehanizma pri dobavle- nii printera vvedite sleduyushchuyu komandu: -15-86a- ¬2 /usr/lib/lpadmin -p¬1 printer-name ¬2-S print-wheel-list (pechatayushchij mehanizm-spisok)  sysadmsh pol'zovateli vybirayut: Printer-->Configure-->Parameters (Printery-->Konfiguraciya-->Parametry) print-wheel-list - eto spisok imen, razdelennyh zapyatoj ili probelom. Esli vy ispol'zuete probely dlya razdeleniya imen, zak- lyuchite ves' spiso