PM-GAWK(1)

NOME
gawk con memoria persistente - dati e funzioni persistenti

SINTASSI
truncate -s dimensione deposito.pma
export GAWK_PERSIST_FILE=deposito.pma
gawk ...

truncate -s dimensione deposito.pma
GAWK_PERSIST_FILE=deposito.pma gawk ...

truncate -s dimensione deposito.pma
alias pm='GAWK_PERSIST_FILE=deposito.pma'
pm gawk ...                       # forma concisa

unset GAWK_PERSIST_FILE   # disabilitare persistenza

export GAWK_PERSIST_FILE=altro_deposito.pma  # modificare deposito

rm deposito.pma               # cancellare deposito

DESCRIZIONE

Gawk a partire dalla versione 5.2 supporta la funzionalità "memoria persistente", che permette di immagazzinare in un file variabili e funzioni definite in uno script Gawk per essere utilizzate in successive esecuzioni di Gawk . La funzionalità, chiamata pm-gawk, è descritta in GAWK: Programmare efficacemente in AWK e in Manuale utente funzionalità Memoria Persistente in gawk.

pm-gawk è attivato passando a gawk il nome di un file-deposito, inizialmente vuoto (tutto a zeri binari) attraverso la variabile di ambiente GAWK_PERSIST_FILE. pm-gawk conserva in tale file-deposito le variabili e le funzioni definite in uno script Gawk per utilizzo in successive esecuzioni di gawk.

pm-gawk offre almeno due vantaggi, rispetto all'esistente estensione rwarray: offre accesso permanente (``O(1) time'') a singoli elementi di vettori associativi persistenti, e può immagazzinare funzioni definite in uno script gawk oltre alle variabili di cui sopra.

ESEMPI

Dimostrazione della persistenza di variabili:

    $ truncate -s 1G deposito.pma            # creazione file-deposito
    $ export GAWK_PERSIST_FILE=deposito.pma  # definizione variabile d'ambiente
    $ gawk 'BEGIN{ print ++i }'
    1
    $ gawk 'BEGIN{ print ++i }'
    2
    $ gawk 'BEGIN{ print ++i }'
    3

Per passare la variabile d'ambiente a livello di singolo comando:

    $ unset GAWK_PERSIST_FILE
    $ GAWK_PERSIST_FILE=deposito.pma gawk 'BEGIN{ print ++i }'
    4
    $ GAWK_PERSIST_FILE=deposito.pma gawk 'BEGIN{ print ++i }'
    5
    $ GAWK_PERSIST_FILE=deposito.pma gawk 'BEGIN{ print ++i }'
    6

Per ridurre l'ingombro legato al passare la variabile d'ambiente a livello di ogni singolo comando si può definire un alias:

    $ alias pm='GAWK_PERSIST_FILE=deposito.pma'
    $ pm gawk 'BEGIN{ print ++i }'
    7
    $ pm gawk 'BEGIN{ print ++i }'
    8

Per evitare di attivare la persistenza:

    $ unset GAWK_PERSIST_FILE
    $ gawk 'BEGIN{ print ++i }'
    1
    $ gawk 'BEGIN{ print ++i }'
    1

Per ``dimenticare'' definitivamente i contenuti del file-deposito:

    $ rm deposito.pma

VARIABILI D'AMBIENTE

GAWK_PERSIST_FILE contiene il nome di un file-deposito dove sono immagazzinate le variabili e le funzioni definite in uno script. Se tale variabile d'ambiente non è visibile a gawk, la funzionalità "memoria persistente" non è attivata e gawk si comporta in maniera tradizionale.

INFORMAZIONE SULLA VERSIONE

La funzionalità "memoria persistente" gawk è stata resa disponibile nella versione gawk 5.2.

AUTORI
Arnold Robbins, il manutentore di gawk, ha implementato pm-gawk usando un allocatore di memoria persistente (Persistent Memory Allocator - pma) fornito da Terence Kelly. Una versione precedente, prototipica, di gawk con memoria persistente è stata sviluppata da Haris Volos, Zi Fan Tan e Jianan Li a partire da una diramazione della distribuzione sorgente di gawk .

SEGNALAZIONE DI ERRORI
Seguire le procedure descritte in GAWK: Programmare efficacemente in AWK e in Manuale utente funzionalità Memoria Persistente in gawk. Se si ritiene che gli errori siano legati alla "memoria persistente" (e non ad altri errori gawk non correlati alla "memoria persistente") siete pregati di spedire un messaggio e-mail a Terence Kelly a uno o più dei seguenti indirizzi: tpkelly@acm.org, tpkelly@eecs.umich.edu, o tpkelly@cs.princeton.edu.

VEDERE ANCHE
gawk(1), GAWK: Programmare efficacemente in AWK, e Manuale utente funzionalità Memoria Persistente in gawk. I due manuali dovrebbero essere disponibili in formato Info, se il comando Info è installato nel vostro sistema.

Vedere https://web.eecs.umich.edu/~tpkelly/pma/ per l'ultima versione del codice sorgente e del manuale.

PERMESSI DI COPIA
Copyright © 2022 Terence Kelly.

È permesso stampare e distribuire copie letterali di questa pagina di manuale, a patto che il copyright e questa nota di autorizzazione siano conservate e presenti in ogni copia.

È permesso copiare e distribuire versioni modificate di questa pagina del manuale, sotto le condizioni poste per la copia letterale, a patto che l'intero lavoro derivato sia distribuito secondo permessi di stampa identici a questi.

È permesso copiare e distribuire traduzioni di questa pagina di manuale in un'altra lingua, sotto le condizioni poste sopra per le versioni modificate, salvo che quest'informazione sui permessi di copia e ristampa deve essere espressa in una traduzione approvata dalla Free Software Foundation.