[C - Papers] Gets() and fgets();
Ecco a voi il mio primo vero post su questo blog: ho deciso di dedicarlo alla programmazione con linguaggio C.
Questo Paper l'ho scritto ormai da qualche tempo ma lo considero abbastanza completo e ordinato, indi voglio condividerlo anche qui con voi.
Bando alle ciancie :D :
GETS() e FGETS()
GET STRING: acquisisce il valore di una stinga di caratteri in ingresso
SCHEDA RIASSUNTIVA
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 “” 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 usando male il gets() si rischiano buffer overflow.