gaglio

Deliri letterari ed informatici

[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.