Zeile für Zeile möglichst effizient lesen * plattformspezifisch *

ch suche nach einer möglichst effizienten Methode zum Lesen einer Textdate

Betrachten Sie jeden möglichen Vorteil, wie den Vorteil von:

code wird plattformspezifisches Windows-Betriebssystem sein

und mit der Tatsache, dass ich ein spezielles für die aktuelle CPU usw. schreibe.

* Es macht nichts, es ist nicht Multi-Plattform.

Nur einfaches Leistungsproblem

Wie könnte ich den schnellsten Weg finden, jede Zeile einer Textdatei in eine Struktur zu lesen?

say die Struktur ist:

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

Ich dachte an etwas wie:

übergeben eines dynamischen Arrays vonFileL oben und der Pfad zur Datei Was wäre der effizienteste Weg, um eine Sammlung von Zeilen der angegebenen Datei auszufüllen und zurückzugeben?

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

wie wäre es effizienter Ansatz?

Bearbeiten:

Ich wollte die Frage aktualisieren, da ich das Problem der Effizienz ansprechen möchte: Der effizienteste Weg, die Datei für jede Zeile bis ins Detail zu scannen, ist der einzige Weg, wie char by char einen Aufruf zum Funktionieren vermeidet bei jedem Zeichen ... alles, um die Leistung des Schleifens bei jeder Zeile zu maximieren, was bedeutet, dass die Definition einer Zeile effizient ausgeführt werden kann ...

Antworten auf die Frage(4)

Ihre Antwort auf die Frage