Paralleles Schreiben in eine Datei
-
ich habe eine einfache Textausgabefunktion:
void textausgeben(char * text) { FILE * stream; stream = fopen("file.txt","a"); fprintf(stream,text); fclose(stream); }
wenn das Programm mit dieser Funktion mehrfach gestartet wird, könnte es doch passieren, dass es Probleme mit der Ausgabe in die Datei gibt. Also, wenn die verschiedenen Instanzen des Programms gleichzeitig versuchen, die Funktion auszuführen.
Was kann man da machen?
Gruß & Dank!
-
verriegler schrieb:
Was kann man da machen?
Programm nicht 2mal starten oder File-Locks verwenden.
-
das bedeutet was? Kann man fopen() auch anheissen, ein File exklusiv zu öffnen?
-
Ich hatte gerade dasselbe Problem. Ich habe es mit einem Mutes(Windows) gelöst. Falls Du nicht unter Windows programmierst, weiß ich auch nix.
-
verrigler schrieb:
das bedeutet was?
man: lockf(3) oder eine entsprechende Funktion für dein Betriebssystem.
verrigler schrieb:
Kann man fopen() auch anheissen, ein File exklusiv zu öffnen?
Nein. Exklusive Schreibrechte sind nicht Teil des C-Standards und nicht auf jedem Betriebssystem verfügbar.
-
mammamia;