 gest e fgets
Pubblicato il 28/10/2008
Ecco qualcosa che potrebbe maggiormente interessare ai neoprogrammatori C:
GETS() e FGETS()
GET STRING: acquisisce il valore di una stinga di caratteri in ingresso
SCHEMA RIASSUNTIVO
punt = gets(stringa);
punt = fgets(stringa,lunghezza,filepunt);
char*punt; puntatore alla stringa memorizzata
char*stringa; puntatore alla zona di memoria destinata a contenere la stringa
acquisita
nt lunghezza; numero di byte che compongono la zona di memoria destinata a
a contenere la stringa acquisitad
FILE*filepunt; puntatore al file
CARATTERISTICHE
Acquisisce una stringa di caratteri dal file:
* Standard Input: gets()
* Specificato da filepunt: fgets()
La stringa da acquisire è definita come l'insieme di caratteri che precedono un carattere di ritorno a capo (oppure lunghezza -1 nel caso di fgets() )
La funzione gets() sostituisce il ritorno a capo con il carattere terminatore “\0” e quindi il carattere terminatore non può far parte di una stringa.
La funzione fgets() inserisce invece il terminatore dopo l'eventuale carattere di ritorno a capo.
Cosa restituisce??
punt = NULL in caso di errore o fine file
= stringa se l'operazione ha avuto esito positivo
NB
La funzione gets() ricordo che non prevede il parametro di ingresso”lunghezza” per definire le dimensioni della zona di memoria destinata a contenere la stringa.
Quindi, in poche parole, se usiamo male questa funzione rischiamo dei bei buffer overflow
gaglio,
A proposito dell'autore
Buona conoscienza dell' HTML del PHP, del Python desktop e per Symbian OS e del Pascal.
Conoscienze basilari di Perl e javascript.
Studio in corso del C.
Buona conoscienza di sistemi GNU/Linux e supporte dell' opensource e discreta conoscienza come sistemista (Gnu/Linux e windows).
|
Aggiungi un commento