Fgets C versus fgetc para linha de leitura

Preciso ler uma linha de texto (terminada por uma nova linha) sem fazer suposições sobre o comprimento. Então, agora estou diante de possibilidades:

Usarfgets e verifique sempre se o último caractere é uma nova linha e acrescente continuamente a um bufferLeia cada caractere usandofgetc e ocasionalmenterealloc o buffer

Intuição me diz ofgetc variante pode ser mais lenta, mas, novamente, não vejo comofgets posso fazer isso sem examinar todos os personagens (também minha intuição nem sempre é tão boa). As linhas são muito grandes, portanto o desempenho é importante.

Gostaria de saber os prós e contras de cada abordagem. Agradeço antecipadamente.

questionAnswers(5)

yourAnswerToTheQuestion