fgets

¿Por qué es la función gets tan peligrosa que no debe ser utilizada?

Cuando intento compilar código C que usa la función gets() con GCC, Entiendo esto aviso: (.text + 0x34): advertencia ... por qué existe tal advertencia sobre el uso de gets()? Si gets() es tan peligroso entonces ¿por qué no podemos eliminarlo?

fgets() y fread () - ¿Cuál es la diferencia?

Entiendo las diferencias entre fgets() y fgetss() pero no entiendo la diferencia entre fgets() y fread(), por favor alguien puede aclarar este tema? Que es más rápido? ¡Gracias!