Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (GNU/Linux, *NIX, *BSD und Co) » Problem mit file streams

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 < [ 2 ]
000
14.02.2007, 07:42 Uhr
~eaglo
Gast


hi!

ich hab einen kleinen unix daemon geschrieben welcher alle heiligen zeiten mal ein verzeichnis auf verschieden dateien kontrolliert. ist so eine datei vorhanden (geht nach einem muster "dateiname1234" also ist es immer eine andere datei mit fortlaufender nr) öffnet er sie und arbeitet den inhalt ab. das ganze funktioniert auch nach dem starten bzw. den ganzen tag ... nur wenn ich ihn über nacht laufen lasse und es am nächsten tag nochmal versuche kann er eine neue datei nie öffnen (wird mithilfe eines scripts immer neu generiert) ...

das ganze sieht grob ca. so aus:

C++:
while(1) {

        execdir = opendir(rootpath.c_str());

     do {
        entry = readdir(execdir);
                actual_entry = entry->d_name;
        if(entry) {
            input.close();
            input.clear();
            input.open((rootpath+actual_entry).c_str());
            if(!input.good()) {
                         // schreibe error ins log und beende den daemon
            }
                        // ansonsten hol ich mir den inhalt heraus ...
            getline(input,command); /* get first line */
                        ...
                        input.close();
               }
        } while(entry);
}


wobei input ein ifstream und rootpath ein string ist (usw. ...)

wo kann mein fehler liegen?!?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
14.02.2007, 07:47 Uhr
~eaglo
Gast


ja ... kompiliert wird das ganze mit

g++ programmname.cpp -o programmname -static

unter gcc 3.3.2

...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
14.02.2007, 08:02 Uhr
~eaglo
Gast


ich hatte auch noch code drin, der 30s wartet und dann nochmal versucht das file zu öffnen ... ging dann aber trotzdem nicht

wenn man ihn neu startet kann er die datei übrigens sofort öffnen ...

was kann das nur sein - ich steh grad voll auf der leitung *hmpf*
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
14.02.2007, 08:03 Uhr
Pler
Einer von Vielen
(Operator)


Kann es sein, dass nur Dateien geöffnet werden können, die vorher schon vorhanden waren. Möglicherweise können Dateien nicht geöffnet werden, weil der andere Prozess, der die schreibt noch nicht richtig geschlossen hat.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
14.02.2007, 08:05 Uhr
~eaglo
Gast


ja ok das hab ich mir auch schon gedacht ...

nur: dann müsste es doch gehn wenn ich dann etwas warte und es nochmal versuche zu öffnen (was ja ned hinhaut )

bzw. dürfte es ja dann vorher auch nicht funktionieren (also ich müsste irgendwann beim testen das selbe phänomen sehen können) aber es tritt anscheinend ausschließlich nach einer laufzeit auf die mind. eine nacht dauert *löl*
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
14.02.2007, 08:43 Uhr
~eaglo
Gast


noch eine idee ?!?

könnte es etwas bringen wenn ich pointer verwende ?!?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
14.02.2007, 09:36 Uhr
Pler
Einer von Vielen
(Operator)


Versuch doch mal die Fehlermeldung auszugeben, wenn die Datei nicht geöffnet werden kann.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
14.02.2007, 12:55 Uhr
~eaglo
Gast


naja jetzt läuft er ja ... ist bis jetzt noch nie am selben tag passiert, dass er die erstellte datei nicht öffnen konnte ...

aus dem logfile:
good: 1
bad: 0
fail: 0
eof: 0

werds nochmal posten nachdem er das file nicht lesen konnte ... wird aber schätz ich mal auch nicht viel bringen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
15.02.2007, 07:54 Uhr
~eaglo
Gast


wie erwartet: heut in der früh konnte er ein file wieder nicht öffnen

good: 0
bad: 0
fail: 1
eof: 0

dabei ist das file eins von gestern (wos noch funkioniert hat). habs einfach direkt ins dir reinkopiert um sicherzugehn dass das file in ordnung ist.

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
15.02.2007, 07:56 Uhr
~eaglo
Gast


ja nochwas, hab gestern zum testen an die 40 files in den ordner gestellt ... die hat er alle wunderbar nach der reihe abgearbeitet ohne irgendewas ... ich verstehs nicht mehr
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (GNU/Linux, *NIX, *BSD und Co) ]  


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: