ofstream probleme !?
-
Guten Abend,
ich bin an einem Code dabei der mir probleme verursacht , und zwar habe ich hier 3 Funktionen erstelltvoid errorwrite (string errorstream) { ofstream errordatei("/tmp/homecontrol.error",ios::app); errordatei << errorstream << "\n"; errordatei.close(); }void read_sender (int sendernr) // senderstream aus Datei lesen und zuordnen { ostringstream cmd; cmd << "Sender" << sendernr; string bufferstring; int big_string , pos_one; ifstream senderstreamin("/tmp/homecontrol.conf",ios::in); if (!senderstreamin.is_open()) { errorwrite("/tmp/homecontrol.conf konnte in Funktion read_sender nicht geoeffnet werden"); // es wird nur dieser von beiden geschrieben } while (!senderstreamin.eof()) { getline(senderstreamin, bufferstring, '\n'); if (bufferstring.find(cmd.str().c_str()) !=string::npos) { big_string = bufferstring.size(); pos_one = bufferstring.find("="); bufferstring.erase(0,pos_one + 1); ofstream senderstreamout("/tmp/mpg123in.pipe",ios::out); if (!senderstreamout.is_open()) { errorwrite("/tmp/mpg123out.pipe konnte in Funktion read_sender nicht geöffnet werden"); // dieses ist noch nicht getestet ob cmd zuordnung gteht. } senderstreamout << bufferstring; senderstreamout.close(); } bufferstring.erase(); } senderstreamin.close(); }void radiodisplay () // Radiopipe pruefen/oeffen und stream für sender&title erstellen { string bufferstring; int big_string , pos_one , pos_two; ifstream radiostreamout("/tmp/mpg123out.pipe",ios::in); if (!radiostreamout.is_open()) { errorwrite("/tmp/mpg123out.pipe konnte in Funktion radiodisplay nicht geoeffnet werden"); // dieses wird nur geschrieben wenn ich read_sender nicht aufrufe } while (!radiostreamout.eof()) { getline(radiostreamout, bufferstring, '\n'); if (bufferstring.find("ICY-META") != string::npos) { big_string = bufferstring.size(); pos_one = bufferstring.find("'"); bufferstring.erase(0,pos_one + 1); pos_two = bufferstring.find(";"); bufferstring.erase(pos_two - 1); pthread_mutex_lock (&radiomutex); interpret_title = bufferstring; pthread_mutex_unlock (&radiomutex); } else if (bufferstring.find("ICY-NAME") != string::npos) { big_string = bufferstring.size(); pos_one = bufferstring.find(":"); bufferstring.erase(0,pos_one + 2); pthread_mutex_lock (&radiomutex); radiosender = bufferstring; pthread_mutex_unlock (&radiomutex); } bufferstring.erase(); sleep (2); } radiostreamout.close(); pthread_mutex_lock (&radiomutex); radiosender.erase(); interpret_title.erase(); pthread_mutex_unlock (&radiomutex); }wenn ich nun die letzten beiden funktionen im extra thread starte schreibt er mir nur den ersten fehler der read_sender funktion aber nicht den des Radiodisplay. Klammere ich die read_sender funktion aus dann schfreibt er mir nur die funktion des Radiodisplay.
Ich würde gerne natürlich beide Fehlermeldungen abgespeichert bekommen.
hätte jemand da evtl eine Idea ?
Mfg Michael
-
Zu der Frage fällt mir nur dieser Link ein:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-200753.html

-
nagut diese Seite kenne ich,
es ist sicherlich kein reiner c++ code :-(. möchte später diese Funktionen
noch komplett umgestalten,
oder habe ich es so umständlich beschrieben was ich gerne möchte ?mfg Michael