Successivo: , Precedente: , Su: Leggere file   [Contenuti][Indice]


4.12 Elaborare ulteriore input dopo certi errori di I/O

Questa sezione descrive una funzionalità disponibile solo in gawk.

Qualora gawk incontri un errore durante la lettura dell’input, per default getline ha come codice di ritorno -1, e i successivi tentativi di leggere dallo stesso file restituiscono una indicazione di fine-file. È tuttavia possibile chiedere a gawk di consentire un ulteriore tentativo di lettura in presenza di certi errori, impostando uno speciale elemento del vettore PROCINFO (vedi la sezione Variabili predefinite con cui awk fornisce informazioni):

PROCINFO["nome_input_file", "RETRY"] = 1

Quando un tale elemento esiste, gawk controlla il valore della variabile di sistema (nel linguaggio C) errno quando si verifica un errore di I/O. Se errno indica che un ulteriore tentativo di lettura può terminare con successo, getline ha come codice di ritorno -2 e ulteriori chiamate a getline possono terminare correttamente. Questo vale per i seguenti valori di errno: EAGAIN, EWOULDBLOCK, EINTR, e ETIMEDOUT.

Questa funzionalità è utile quando si assegna un valore all’elemento PROCINFO["nome_input_file", "READ_TIMEOUT"] o in situazioni in cui un descrittore di file sia stato configurato per comportarsi in modo non bloccante.