Lendo arquivo de texto em uma matriz de linhas em C

Usando C Eu gostaria de ler o conteúdo de um arquivo de texto de forma a ter quando tudo é dito e feito um array de strings com a enésima string representando a enésima linha do arquivo de texto. As linhas do arquivo podem ser arbitrariamente longas.

O que é uma maneira elegante de realizar isso? Eu sei de alguns truques para ler um arquivo de texto diretamente em um único buffer de tamanho apropriado, mas dividi-lo em linhas torna mais complicado (pelo menos tanto quanto eu posso dizer).

Muito obrigado!

questionAnswers(5)

yourAnswerToTheQuestion