Ich frage mich, ob dies der beste Weg ist, um über mein Problem zu lösen.Gehe zu einem bestimmten Punkt einer Binärdatei in C (mit fseek) und dann von diesem Ort (mit fread) lesen
Ich kenne die Werte für bestimmte Offsets einer Binärdatei, wo die Informationen, die ich will, gehalten wird ... Was ich tun möchte, ist zu den Offsets zu springen und dann eine bestimmte Menge an Bytes von diesem Ort aus zu lesen.
Nach der Verwendung von Google, bin ich zu der Schlussfolgerung gekommen, dass meine beste Wette ist, fseek() zu verwenden, um die Position des Offsets zu verschieben, und fread() zu verwenden, um eine Anzahl von Bytes von dieser Position zu lesen.
Bin ich richtig, wenn ich das denke? Und wenn ja, wie geht das am besten? d. h. wie man die zwei zusammenbringt.
Wenn ich nicht richtig bin, was würden Sie vorschlagen, dass ich stattdessen tun?
Vielen Dank im Voraus für Ihre Hilfe.
Matt
bearbeiten:
folgte ich ein Tutorial über fread() und an folgende angepasst:
`#include <stdio.h>
int main()
{
FILE *f;
char buffer[11];
if (f = fopen("comm_array2.img", "rt"))
{
fread(buffer, 1, 10, f);
buffer[10] = 0;
fclose(f);
printf("first 10 characters of the file:\n%s\n", buffer);
}
return 0;
}`
So habe ich die Datei 'comm_array2.img' und lese die ersten 10 Zeichen aus der Datei.
Aber von dem, was ich davon verstehen, das geht vom Start-of-Datei, mag ich von einem Platz-in-Datei gehen (Offset)
Ist das mehr Sinn machen?
bearbeiten Nummer 2:
Es scheint, dass ich ein bisschen dunkel wurde, und alles, was benötigt wird (es wäre von meinem Versuch scheint) ist die fseek zu setzen() vor dem fread(), die ich habe in dem Code oben, und es sucht nach diesem Ort und liest dann von dort.
Ja. Verwenden Sie fseek() und fread(). Welchen Code hast du ausprobiert? – erisco
Ja, du hast Recht, aber was ist deine Frage oder dein Problem? –
Es gibt Tutorials im Internet, die zeigen, wie man sie benutzt. Mit den Suchbegriffen "fseek fread C tutorial" sollte es einfach sein, einige zu finden. Hast du irgendwas durchgearbeitet? – gbulmer