Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Ist printf() zu langsam?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
23.07.2004, 15:18 Uhr
aklaeser



Hi habe folgenden Code:


C++:
    while (ReadDirectoryChangesW(hDir,
                                &Buffer,
                                sizeof(Buffer),
                                TRUE,
                                FILE_NOTIFY_CHANGE_DIR_NAME        |
                                FILE_NOTIFY_CHANGE_FILE_NAME,
                                &BytesReturned,
                                NULL,
                                NULL))
    {
        
        CString filename = "";
        CString t_filename = "";

        char text[100];
        switch (Buffer[0].Action)
        {
        case FILE_ACTION_ADDED:
            strcpy(text, "hinzugefuegt");
            //j++;
            break;
        case FILE_ACTION_REMOVED:
            strcpy(text, "entfernt    ");
            

            break;
        /*case FILE_ACTION_MODIFIED:
            strcpy(text, "Datei wurde veraendert");
            break;*/

        }

        z = 0;
        
        do
        {
            j++;
            filename = str + CString(Buffer[z].FileName).Left(Buffer[z].FileNameLength / 2);
            printf("%d bei %s\n", j, filename);
            //fseek(logdatei, 0, SEEK_END);

            fprintf(logdatei, "%d - %s\t Datei %s\n",j ,text, filename);

            z++;
        }
        while (!Buffer[z].NextEntryOffset);
    }
    fclose(logdatei);



Wenn ich jetzt mein Prog ausführe funktioniert die ausgabe auf dem bildschirm einwandfrei dort bekomm ich alle einträge zu sehen nur wenn ich die datei öffne und mir die anschaue fehlen dort immer rund 20 datensätze woran liegt das, schreib ich die daten zu langsam in die datei?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.07.2004, 16:33 Uhr
ao

(Operator)


Das kann kein Geschwindigkeitsproblem sein. fprintf ist zwar gepuffert, aber die Runtime-Lib kümmert sich drum, dass der Puffer spätestens beim fclose ordentlich geflusht wird. Und dass da ein Bug drin ist, halte ich für sehr unwahrscheinlich.

Meine Vorschläge:

1. Wie hast du die Datei geöffnet?
logdatei = fopen ("c\bla.txt", "w");
würde ich spontan für richtig halten.

2. Ist der Codeschnipsel vollständig? Worauf ich hinauswill: Ist es sicher, dass das fclose ausgeführt wird, oder gibt es einen Weg (early-return im Fehlerfall oder so), der am fclose vorbeiführt?

3. Bist du sicher, dass du die richtige Datei anschaust?

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: