Timeline
Chat
Prospettiva
Format string
stringa di caratteri Da Wikipedia, l'enciclopedia libera
Remove ads
Per "format string" in lingua inglese si intende una stringa di caratteri contenente testo in chiaro e/o regole per la conversione di valori da codice a testo leggibile.
Programmazione (ANSI C)
Riepilogo
Prospettiva
Le format string vengono molto utilizzate nella programmazione, in particolare nel linguaggio C dove le troviamo in decine di funzioni standard come ad esempio:
- printf() e derivate come fprintf(), sprintf(), vprintf() ecc..
- syslog()
- perror()
Composizione
La composizione di una format string prevede l'uso di una Format Function e di un testo da passare in output:
printf("il valore di VAR è = %d\n", var);
in questo caso la format function è printf() e la format string è "il valore di VAR è = %d\n". Quest'ultima è composta da un testo e da uno o più parametri (distinguibili dal segno %) da convertire in ASCII, questi parametri possono fornirci diversi valori, da semplici numeri, a stringhe di caratteri, sino a posizioni di memoria. Tra i più utilizzati abbiamo:
Meccanismo di funzionamento
I processi per l'elaborazione di una format string, prevedono il salvataggio della stringa (e degli eventuali parametri) all'interno dello Stack (via utilizzo dell'istruzione assembly push) da parte della funzione chiamante la format function.
Quest'ultima funzione una volta passatogli il controllo del processo si limiterà a prelevare (via utilizzo dell'istruzione assembly pop) la format string precedentemente salvata nello stack, per poi interpretarla e prelevare (solo se presenti) gli elementi da convertire (identificati dal carattere %).
Si ottiene dunque uno schema di quattro passaggi fondamentali (oltre a due facoltativi):
- salvataggio nello stack degli eventuali parametri (push)
- salvataggio nello stack della posizione in memoria contenente la format string (push)
- chiamata alla Format Function (call)
- prelievo dallo stack della format string (pop)
- analisi della stessa
- eventuale prelievo dei parametri (solo se presenti)
Remove ads
Voci correlate
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads