Hallo, ich will auch mal was simples fragen:
Ich möchte in C nur einen Teil einer Datei überschreiben.
So wie ich mir das vorgestellt habe geht es leider nicht:
w+ überschreibt nämlich den Teil bis zur gesuchten Position mit Nullen. Ich möchte aber den Teil von offset und (wenn vorhanden) den nach dem Geschriebenen erhalten lassen.
a kann nur am Ende dazuschreiben so weit ich gelesen habe.
Ich hab in Google nach 'c rewrite file', 'C overwrite file part', 'C datei teilweise überschreiben', habe aber nicht wirklich was dazu gefunden.
Also z.B. in einem 10byte großen file das 4. auf 'a' setzen.
Mein Ansatz war:
Code
FILE * fp;
if ( (fp = fopen(filename, "w+")) == NULL ) {
perror("struct_write: fopen failed");
return -1;
}
if ( fseek(fp, pos, SEEK_SET) == -1 ){
perror("struct_write: fseek failed");
return -2;
}
if ( fwrite(s, ssize, 1, fp) < 1){
perror("struct_write: fwrite failed");
return -3;
}
if ( fclose(fp) != 0){
perror("struct_write: fclose failed");
return -4;
}
Alles anzeigen