Hallo,
Wir arbeiten hier gerade an einem kleinen "Hack", dabei wollen wir ein bestehnedes Programm etwas verändern.
Eine Datei wird mit
eingelesen, und dann später mit fgets(...) ausgelesen.
Ich möchte nun den Inhalt von pFile ändern. Ich brauch also nix einzulesen. Ich brauche aber in genau dem File Buffer, in dem vorher etwas aus einer Datei eingelesen wurde meinen String. (Es handelt sich um viel Code, daher muss ich dieses pseudo Einlesen beibehalten und einfach den Stream überschreiben.)
Folgendes habe ich erfolgslos probiert: Ich habe die obige codezeile mit dem folgenden ersetzt:
Wie geht man da vor?
Was mache ich falsch?
EDIT:
So geht anscheinend doch:
Aber warum kann man da nicht direkt reinschreiben?
EDIT2:
Oder auch nicht. :/ Ich schnalls langsam nicht mehr. Imübrigen ist es auch nicht so toll, wenn mein string auf die HD geschreiben wird...
Ich will lediglich in Memory den Inhalt des eingelesenen Files überschreiben - oder das File gar nicht erst einlesen und einfah mit dem selben Pointer meinen String dahin setzten.
Weis jemand Rat?
Wir arbeiten hier gerade an einem kleinen "Hack", dabei wollen wir ein bestehnedes Programm etwas verändern.
Eine Datei wird mit
Code:
FILE *pFile = fopen(myFile, "r");
Ich möchte nun den Inhalt von pFile ändern. Ich brauch also nix einzulesen. Ich brauche aber in genau dem File Buffer, in dem vorher etwas aus einer Datei eingelesen wurde meinen String. (Es handelt sich um viel Code, daher muss ich dieses pseudo Einlesen beibehalten und einfach den Stream überschreiben.)
Folgendes habe ich erfolgslos probiert: Ich habe die obige codezeile mit dem folgenden ersetzt:
Code:
FILE *pFile = fopen("dummy", "w+"); //öffne dummy obijekt
fputs("Dies ist der neue Inhalt von pFile",pFile);
Wie geht man da vor?
Was mache ich falsch?
EDIT:
So geht anscheinend doch:
Code:
char buffer[BUFSIZ];
FILE *pFile = fopen("dummy", "w+"); //öffne dummy obijekt
setbuf ( pFile, buffer );
fputs ("Dies ist der neue Inhalt von pFile",pFile);
fflush (pFile); //flush the buffer into
Aber warum kann man da nicht direkt reinschreiben?
EDIT2:
Oder auch nicht. :/ Ich schnalls langsam nicht mehr. Imübrigen ist es auch nicht so toll, wenn mein string auf die HD geschreiben wird...
Ich will lediglich in Memory den Inhalt des eingelesenen Files überschreiben - oder das File gar nicht erst einlesen und einfah mit dem selben Pointer meinen String dahin setzten.
Weis jemand Rat?