Ich ac Code für eine Datei-Handling zu schreiben, die ein Dateiformat wie unten haben:Aktualisieren/eine Datei in c zu überschreiben, ohne eine neue oder temporäre Datei erstellen
Domain1:IP:Port:Id1,Id2,Id3
Domain2:IP:Port:Id1,Id2,
Es sollte möglich sein, eine neue Zeile mit neuen Domänen hinzuzufügen, und es sollte auch möglich sein, bestehende Domänen-IDs zu modifizieren. Und mit den Modifikations-IDs kann die Anzahl der IDs erhöht oder verringert werden, wie in einem Vorgang, ich könnte ID4 zu Domain1 im obigen Beispiel hinzufügen, und auch in einem anderen Vorgang sollte ich ID1 von Domain2 als Beispiel löschen können .
Also meine Fragen (Danke für Hilfe):
Ich möchte nicht über eine temp/neue Datei erstellen und den Namen ändern und alte Datei löschen. Kann ich die vorhandene Datei lesen und schreiben? Wie kann es sicher machen? (Ich habe ein paar Beispiele mit der Aktualisierung von Zeilen (mit fwrite) versucht, aber ich sehe, dass es einige Zeichen aus der nächsten Zeile entfernt, wenn ich einige Zeichen wie ID4 und andere seltsame Zeichen in einigen Versuchen hinzufügen)). Irgendein Beispielcode?
Auch später müsste ich Sperren zu Datei verwenden, so dass nur einer in der Lage sein sollte, auf einmal zu lesen und zu schreiben. Irgendwelche Vorschläge/Verbindungen geschätzt.
Vielen Dank.
Danke für Ihre Antwort, in meinem Fall, jede Zeile könnte mehr oder weniger Zeichen nach der Änderung, ich möchte nicht eine neue Datei erstellen, aber ja, ich habe versucht, eine Zeichenfolge mit einem neuen Text zu erstellen und zu fwrite zu tun. etwas wie das: char str [30]; strcpy (str, "lokal: IP: Port: 1,3,5"); Rückspulen (f); int dom_len = strlen (sds_domain); int test1 = ftell (f); printf ("LINE NUMBER% d", test1); fwrite (str, 1, strlen (str), f); , aber es überschreibt den Text in der zweiten Zeile. – Richi