este artigo precisa de ser revisto e aumentado. Colabore !
char *fgets (char *str, int tamanho,FILE *fp);
A função como é demonstrado em cima recebe 3 argumentos: a string a ser lida (str), o limite máximo de caracteres a serem lidos (tamanho) e o ponteiro para FILE, que está associado ao ficheiro de onde a string será lida. A função lê a string até que um caracter de nova linha seja lido ou '\0' seja lido. Se o caracter de \n' for lido, fará parte da string, o que não acontecia com gets.
A principal vantagem em relação à gets() é a possibilidade de controlar o buffer de forma a não haver estouro.