lea línea por línea de la manera más eficiente * plataforma específica *

Estoy buscando la forma más eficiente de leer un archivo de texto.

teniendo en cuenta todas las ventajas posibles, como la ventaja de:

el código será el sistema operativo Windows específico de la plataforma

y con el hecho de que estoy escribiendo un específico para la CPU actual, etc.

* No importa, no es multiplataforma.

simplemente problema de rendimiento

¿Cómo podría codificar de la manera más rápida, leyendo cada línea de un archivo de texto en una estructura?

decir que la estructura es:

typdef struct _FileL{
 uint lidx;
 char* lncontent;
} FileL;

Estaba pensando en algo como:

pasando una matriz dinámica deFileL arriba y la ruta al archivo, ¿cuál sería la forma más eficiente de llenar y devolver una colección de líneas del archivo dado?

getFileLines(char* fullPath, FileL** fileLines){
    uint linesCount = 0;// total lines
    uint curLnIndex = 0;// lines counter

    FILE* srcFL; // will hold the source file using passed fullPath

    // now read file into memory 
    //that is the only way i could think of 
    //to be able to assign lineCount used to calculate the array length
    //and also the fastest way is  to read the whole file into memory (?)

    srcFL = fopen(fullPath,"r"); // or open() instead of fopen() ?

   // problem:
   // assigning lineCount somehow would cost the time of reading
   // and might aswell just populate it and already store to array..
   // so what is the workaround ?

  *fileLines =(FileL*) malloc (linesCount * sizeof(FileL));
   FileL* CurLn = *fileLines;

   while(curLnIndex != linesCount){
     char* TmpLnCont;
     //read line into TmpLnCont..
     CurLn->lidx = curLnIndex ;
     CurLn->lncontent = (char*)malloc(sizeof(TmpLnCont));
     strcpy(CurLn->lncontent, TmpLnCont);
   }
}

¿Cómo sería un enfoque más eficiente?

Editar:

quería actualizar la pregunta, ya que me gustaría abordar el tema de la eficiencia: la forma más eficiente hasta el detalle de escanear el archivo para cada línea, es la única forma en que char by char, cómo evitar una llamada a funcionar en cada char ... cualquier cosa para maximizar el rendimiento del bucle en cada línea, lo que significa llegar a la definición de una línea de manera eficiente ...