Successivo: Funzioni di registrazione, Precedente: Funzioni di allocazione memoria, Su: Descrizione dell'estensione API [Contenuti][Indice]
L’API fornisce varie funzioni di costruzione per creare valori di tipo stringa e di tipo numerico, e anche varie macro di utilità. Questa sottosezione le presenta tutte come prototipi di funzione, nel modo in cui il codice sorgente di un’estensione le userebbe:
static inline awk_value_t *make_const_string(const char *stringa, size_t lunghezza, awk_value_t *risultato);Questa funzione mette il valore di una stringa nella variabile
awk_value_t puntata da risultato. La funzione presuppone che
stringa sia una costante stringa C
(o altri dati che formano una stringa), e automaticamente crea una
copia dei dati che sarà immagazzinata in risultato.
Viene restituito il puntatore risultato.
static inline awk_value_t *make_malloced_string(const char *stringa, size_t lunghezza, awk_value_t *risultato);Questa funzione mette il valore di una stringa nella variabile
awk_value_t puntata da risultato. Si presuppone che
stringa sia un valore ‘char *’
che punta a dati ottenuti in precedenza per mezzo di
gawk_malloc(), gawk_calloc() o gawk_realloc().
L’idea è che questi dati siano comunicati direttamente a gawk,
che se ne assume la responsabilità.
Viene restituito il puntatore risultato.
static inline awk_value_t *make_null_string(awk_value_t *risultato);Questa funzione specializzata crea una stringa nulla (il valore “undefined”)
nella variabile awk_value_t puntata da risultato.
Viene restituito il puntatore risultato.
static inline awk_value_t *make_number(double num, awk_value_t *risultato);Questa funzione crea semplicemente un valore numerico nella variabile
awk_value_t, puntata da risultato.
static inline awk_value_t *make_number_mpz(void *mpz, awk_value_t *result);Questa funzione crea un valore di numero GMP in result.
mpz deve provenire da una chiamata a get_mpz_ptr()
(e quindi essere veramente del corrispondente tipo mpz_ptr).
gawk assume la proprietà di questa memoria.
static inline awk_value_t *make_number_mpfr(void *mpfr, awk_value_t *result);Questa funzione crea un valore di numero MPFR in result.
mpz deve provenire da una chiamata a get_mpfr_ptr()
(e quindi essere veramente del corrispondente tipo mpfr_ptr).
gawk assume la proprietà di questa memoria.
static inline awk_value_t *make_const_user_input(const char *stringa, size_t lunghezza, awk_value_t *risultato);Questa funzione è identica a make_const_string(), ma la stringa è
marcata come input dell’utente, che dovrà essere trattata come strnum
se il contenuto della stringa appare essere numerico.
static inline awk_value_t *make_malloced_user_input(const char *stringa, size_t lunghezza, awk_value_t *risultato);Questa funzione è identica a make_malloced_string(), ma la stringa è
marcata come input dell’utente, che dovrà essere trattata come strnum
se il contenuto della stringa appare essere numerico.
static inline awk_value_t *make_const_regex(const char *stringa, size_t lunghezza, awk_value_t *risultato);Questa funzione crea un valore di regexp fortemente tipizzata, allocando una
copia della stringa.
stringa è l’espressione regolare, di lunghezza lunghezza.
static inline awk_value_t *make_malloced_regex(const char *stringa, size_t lunghezza, awk_value_t *risultato);Questa funzione crea un valore di regexp fortemente tipizzata.
stringa è l’espressione regolare, di lunghezza lunghezza.
Si aspetta che stringa sia un valore di tipo ‘char *’ che punta a
dati ottenuti in precedenza tramite una chiamata a
gawk_malloc(), gawk_calloc() o gawk_realloc().
Successivo: Funzioni di registrazione, Precedente: Funzioni di allocazione memoria, Su: Descrizione dell'estensione API [Contenuti][Indice]