Successivo: Cygwin, Precedente: Compilazione su PC, Su: Installazione su PC [Contenuti][Indice]
gawk
su sistemi operativi PCSotto MS-Windows, l’ambiente MinGW consente di usare
sia l’operatore ‘|&’ che le operazioni su rete TCP/IP
(vedi la sezione Usare gawk
per la programmazione di rete).
L’ambiente DJGPP non consente di usare ‘|&’.
Le versioni MS-Windows di gawk
ricercano i file di
programma come descritto in Ricerca di programmi awk
in una lista di directory.. Comunque, gli elementi
della variabile AWKPATH
sono separati tra di loro da un punto e virgola
(anziché da due punti (:
)).
Se AWKPATH
è non impostata o ha per valore la stringa nulla, il percorso
di ricerca di default è ‘.;c:/lib/awk;c:/gnu/lib/awk’.
Sotto MS-Windows,
gawk
(come molti altri programmi di trattamento testi) converte
automaticamente la stringa di fine riga ‘\r\n’ in ‘\n’ leggendo dall’input
e ‘\n’ in ‘\r\n’ scrivendo sull’output.
La variabile speciale BINMODE
(e.c.) permette di controllare
come avvengono queste conversioni, ed è interpretata come segue:
BINMODE
è "r"
o uno,
la modalità binaria è impostata
in lettura (cioè, nessuna conversione in lettura).
BINMODE
è "w"
o due,
la modalità binaria è impostata
in scrittura (cioè, nessuna conversione in scrittura).
BINMODE
è "rw"
o "wr"
o tre,
la modalità binaria è impostata sia in lettura che in scrittura.
BINMODE=stringa-non-nulla
equivale a specificare
‘BINMODE=3’ (cioè, nessuna conversione in
lettura e scrittura). Tuttavia, gawk
emette un messaggio di
avviso se la stringa non è "rw"
o "wr"
.
La modalità di trattamento dello standard input e standard output sono
impostate una volta sola
(dopo aver letto la riga di comando, ma prima di iniziare a elaborare
qualsiasi programma awk
).
L’impostazione di BINMODE
per standard input o
standard output va fatta usando
un’appropriata opzione ‘-v BINMODE=N’ sulla riga di comando.
BINMODE
è impostato nel momento in cui un file o pipe è aperto
e non può essere cambiato in corso di elaborazione.
Su sistemi compatibili con POSIX, il valore di queta variabile non ha
alcun effetto. Pertanto, se si pensa che un dato programma sarà eseguito
su parecchi sistemi differenti, e che sia necessario usare
BINMODE
, è possibile impostarlo semplicemente (nel programma
o sulla riga di comando) incondizionatamente, senza preoccuparsi del
sistema operativo sotto il quale il programma viene eseguito.
Il nome BINMODE
è stato scelto in analogia con mawk
(vedi la sezione Altre implementazioni di awk
liberamente disponibili).
mawk
e gawk
gestiscono BINMODE
in maniera simile;
tuttavia, mawk
prevede un’opzione ‘-W BINMODE=N’ e una
variabile d’ambiente che può impostare BINMODE
, RS
, e ORS
.
I file binmode[1-3].awk (nella directory gnu/lib/awk in alcune
delle distribuzioni binarie già predisposte) sono stati inclusi per rendere
disponibile l’opzione di mawk
‘-W BINMODE=N’. Questi
possono essere modificati o ignorati; in particolare, quale sia l’impostazione
di RS
che dà meno “sorprese” rimane una questione aperta.
mawk
usa ‘RS = "\r\n"’ se si imposta la modalità binaria in
lettura, il che è appropriato per file che abbiano i caratteri di fine riga in
stile MS-DOS.
Per chiarire, gli esempi seguenti impostano la modalità binaria in
scrittura per lo standard output e altri file, e impostano ORS
in modo
da ottenere la fine riga “normale” in stile MS-DOS:
gawk -v BINMODE=2 -v ORS="\r\n" …
o:
gawk -v BINMODE=w -f binmode2.awk …
Questi comandi danno lo stesso risultato dell’opzione
‘-W BINMODE=2’ in mawk
.
Quanto segue modifica il separatore di record a "\r\n"
e imposta
la modalità binaria in lettura, senza modificare le letture da standard input:
gawk -v RS="\r\n" -e "BEGIN { BINMODE = 1 }" …
o:
gawk -f binmode1.awk …
Usando i caratteri di protezione appropriati, nel primo
esempio l’impostazione di RS
può essere spostata in una regola
BEGIN
.
Successivo: Cygwin, Precedente: Compilazione su PC, Su: Installazione su PC [Contenuti][Indice]