Successivo: , Precedente: , Su: Panoramica sui criteri di ricerca   [Contenuti][Indice]


7.1.5 I criteri di ricerca speciali BEGINFILE ed ENDFILE

Questa sezione descrive una funzionalità disponibile solo in gawk.

Due tipi speciali di criterio di ricerca, BEGINFILE ed ENDFILE, forniscono degli “agganci” per intervenire durante il ciclo di elaborazione dei file specificati sulla riga di comando di gawk. Come con le regole BEGIN ed END (vedi la sezione I criteri di ricerca speciali BEGIN ed END), tutte le regole BEGINFILE in un programma sono riunite, mantenendole nell’ordine in cui sono lette da gawk e lo stesso viene fatto per tutte le regole ENDFILE.

Il corpo delle regole BEGINFILE è eseguito subito prima che gawk legga il primo record da un file. La variabile FILENAME è impostata al nome del file corrente e FNR è impostata a zero.

La regola BEGINFILE dà la possibilità di eseguire due compiti che sarebbe difficile o impossibile effettuare altrimenti:

La regola ENDFILE è chiamata quando gawk ha finito di elaborare l’ultimo record di un file in input. Per l’ultimo file in input, è chiamata prima di ogni regola END. La regola ENDFILE è eseguita anche per file in input vuoti.

Normalmente, se si verifica un errore di lettura durante il normale ciclo di elaborazione dell’input, questo è considerato fatale (il programma termina). Tuttavia, se è presente una regola ENDFILE, l’errore non è considerato fatale, ma viene impostato ERRNO. Ciò permette di intercettare ed elaborare errori di I/O a livello di programma awk.

L’istruzione next (vedi la sezione L’istruzione next) non è permessa all’interno di una regola BEGINFILE o ENDFILE. L’istruzione nextfile è consentita solo all’interno di una regola BEGINFILE, non all’interno di una regola ENDFILE.

L’istruzione getline (vedi la sezione Richiedere input usando getline) è limitata all’interno sia di BEGINFILE che di ENDFILE: solo le forme ridirette di di getline sono permesse.

BEGINFILE ed ENDFILE sono estensioni gawk. In molte altre implementazioni di awk o se gawk è in modalità compatibile (vedi la sezione Opzioni sulla riga di comando), non sono regole speciali.


Successivo: , Precedente: , Su: Panoramica sui criteri di ricerca   [Contenuti][Indice]