Announcement

Collapse
No announcement yet.

fflush bug!?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • fflush bug!?

    Ich habe wieder einmal ein interessantes Phenomen in einem meiner Programme:
    Die Rechner auf denen das Programm läuft haben Win2k installiert.

    Mein Programm liest Daten aus einem ASCII-File und mappt diese in eine Datenbank.
    In dem ASCII-File stehen Datensätze - für jeden Satz wird ein Quittierungssatz geschrieben.

    Satz:
    KEY041000261836 ...'END'

    Quittierungssatz:
    KEY041000261836 ...'QUI0020090324153526'END'

    also wird nur ein Timestamp zusätzlich geschrieben - die Quittierungssätze kommen in ein Qasdf.001 File.

    Ich baue den Buffer mit dem gesamten Satz auf und schreibe diesen in die Datei.
    Code:
    fprintf(gi.fQui,"%*.*sQUI00%02d%04d%02d%02d%02d%02d%02d'%s",iTmp,iTmp,gi.xbuf,gi.iQuiErr,jetzt.tm_year+1900,jetzt.tm_mon+1,jetzt.tm_mday,jetzt.tm_hour,jetzt.tm_min,jetzt.tm_sec,pEnd);
    fflush(gi.fQui);
    Somit sollte sichergestellt werden, dass der komplette Satz ins File geflusht wird.
    Bei einigen Rechnern kommt es zum Problem, dass der Satz mitten drin abgeschnitten wird:
    KEY04100026 (und aus)

    Hat jemand eine Idee wie es passieren kann, dass ein explizites fflush die Daten nicht auf die Platte schreiben kann?

    Suche den Bug schon seit 6 Tagen - mir gehen die Ideen aus.

    Bin für jeden Hinweis dankbar.

    lg Wolfgang

  • #2
    Auch hier gibt es eine Lösung:

    Das Programm wird über Datenbankeinträge gesteuert - auf dem betroffenen System ist als Pfad ein Netzwerkshare angegeben.

    Zufällig läuft es genau zu der Zeit, wenn T-Mobile D einen Netreconnect durchführt - somit ist für ein paar Millisekunden der Netzwershare weg und das Programm kennt sich nicht mehr aus.

    Comment

    Working...
    X