читать построчно наиболее эффективным способом * для конкретной платформы *

Я ищу наиболее эффективный способ чтения текстового файла.

учитывая все возможные преимущества, например:

код будет зависеть от платформы ОС Windows

и с тем фактом, что я пишу конкретные для текущего процессора и т. д. '..

* не против, это не мультиплатформенность.

просто проблема с производительностью

Как я могу кодировать самый быстрый способ, читая каждую строку текстового файла в структуру?

скажем, структура:

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

я думал о чем-то вроде:

передавая динамический массивFileL выше и путь к файлу, что было бы наиболее эффективным способом заполнить и вернуть коллекцию строк данного файла?

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);
   }
}

Как бы это был более эффективный подход?

Редактировать :

я хотел бы обновить вопрос так, как хотел бы решить проблему эффективности: самый эффективный способ, вплоть до детализации сканирования файла для каждой строки, это единственный способ char за char, как избежать вызова функции на каждый символ ... что угодно, чтобы максимизировать производительность зацикливания в каждой строке, что означает эффективное получение определения строки ...

Ответы на вопрос(2)

Ваш ответ на вопрос