lp - file speciali per le stampanti
lp[0–2] sono dispositivi a carattere per le
stampanti connesse sulla porta parallela; hanno numero primario 6 e numero
secondario 0–2. I numeri secondari corrispondono agli indirizzi base
delle porte delle stampante 0x03bc, 0x0378 e 0x0278. Si solito hanno modo di
accesso 220 e sono di proprietà di root e gruppo lp. Si può
usare la porta della stampante sia in polling che con interrupt. Gli
interrupt sono raccomandati quando è previsto molto traffico, per
esempio per le stampanti laser. Per le normali stampanti ad aghi di solito
è sufficiente il polling. Il default è il polling.
Sono supportate le seguenti chiamate ioctl(2):
- int ioctl(int
fd, LPTIME, int arg)
- Pone uguale ad arg l'ammontare di tempo che il driver deve
aspettare prima di ricontrollare la stampante quando il buffer della
stampante sembra essere pieno. Se si ha un stampante veloce, si può
diminuire questo numero; se si ha una stampante lenta conviene aumentarlo.
Il valore È espresso in centesimi di secondo, e il default 2
significa 0.02 secondi. Questo valore influenza solo il driver di tipo
"polling".
- int ioctl(int
fd, LPCHAR, int arg)
- Assenga ad arg il numero massimo di iterazioni in busy-wait che il
driver di tipo "polling" effetua aspettando che la stampante sia
pronta a ricevere un carattere. Se la stampa è troppo lenta, si
può incrementare questo numero; se il sistema va troppo piano lo si
decrementi. Il default è 1000. Il valore ha influenza solo sulla
sequenza di interrogazione dei driver.
- int ioctl(int
fd, LPABORT, int arg)
- Se arg è 0, il driver della stampante riproverà a
trasmettere nel caso si verifichino errori, altrimenti interromperà
la stampa. Il default è 0.
- int ioctl(int
fd, LPABORTOPEN, int arg)
- Se arg è 0, open(2) sarà terminato in caso un
errore, altrimenti l'errore sarà ignorato. Il default è di
ignorarlo.
- int ioctl(int
fd, LPCAREFUL, int arg)
- Se arg è 0, allora i segnali out-of-paper, offline e error
devono essere falsi durante tutte le operazioni di scrittura, altrimenti
vengono ignorati. Il default è di ignorarli.
- int ioctl(int
fd, LPWAIT, int arg)
- Assegna ad arg il numero di iterazioni in busy-wait da aspettare
prima di abilitare (strobe) la stampante ad accettare il carattere appena
scritto, e il numero di iterazioni da attendere prima di togliere ancora
l'abilitazione. Le specifiche dicono che questo tempo dovrebbe essere di
0.5 microsecondi, ma l'esperienza ha mostrato che il ritardo causato dal
codice è già sufficiente. Per questa ragione, il valore di
default è 0. Questi valori vengono usati sia per la modalità
interrogazione che quella con interrupt.
- int ioctl(int
fd, LPSETIRQ, int arg)
- Questa ioctl(2) richiede i privilegi del superutente. Prende come
argomento un intero contenente il nuovo numero di IRQ. Come effetto
collaterale, la stampante sarà reimpostata. Quando arg
è 0, questa chiamata seleziona il driver di tipo
"polling", che è anche quello di default.
- int ioctl(int
fd, LPGETIRQ, int *arg)
- Salva l'IRQ correntemente usato in arg.
- int ioctl(int
fd, LPGETSTATUS, int *arg)
- Salva il valore della porta di stato della stampante in arg. I bit
hanno i seguenti significati:
LP_PBUSY |
input busy invertito, attivo alto |
LP_PACK |
input acknowledge invariato, attivo basso |
LP_POUTPA |
input "out-of-paper" invariato, attivo alto |
LP_PSELECD |
input "selected" invariato, attivo alto |
LP_PERRORP |
input "error" invariato, attivo basso |
Si faccia riferimento al manuale della propria stampante per
il significato dei segnali. Si noti che possono essere impostati anche i
bit non documentati, ma questo dipende dalla stampante usata.
- int ioctl(int
fd, LPRESET)
- Reimposta la stampante. Non è necessario alcun argomento.
Questa pagina fa parte del rilascio 3.73 del progetto Linux
man-pages. Una descrizione del progetto, le istruzioni per la
segnalazione degli errori, e l'ultima versione di questa pagina si trova su
http://www.kernel.org/doc/man-pages/.
La versione italiana fa parte del pacchetto man-pages-it v.
3.73, a cura di: ILDP "Italian Linux Documentation Project"
http://www.pluto.it/ildp
Per la traduzione in italiano si può fare riferimento a
http://www.pluto.it/ildp/collaborare/
Segnalare eventuali errori di traduzione a ildp@pluto.it