Bereiche
News
Rewind
Tipps & Berichte
Forum
Galerie
Journals
Events
Umfragen
Themenwoche
Kleinanzeigen
Interaktiv
Anmelden
Registrierung
Zu allen empfangenen Nachrichten
Suche...
Zur erweiterten Suche
Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum
>
Entwickler
>
Hilfe gesucht: Daten aus einer Datei lesen - in C
Hilfe gesucht: Daten aus einer Datei lesen - in C
andreas_g
10.01.12
09:58
Liebe MTN Community,
trotz Suche im Internet, habe ich bisher nicht so recht herausfinden können, wie ich folgende Aufgabe lösen könnte:
Ich möchte einen definierten Abschnitt einer Datei in ein Array schreiben und habe folgende Informationen zur Verfügung:
- Die Datei ist ein "rohes" Abbild eines Speichermediums, unterteilt in Blöcke zu je 512 Byte
- Bekannt sind: Nummer des Blocks, bei dem der Lesevorgang begonnen werden soll, Anzahl der Blöcke, die gelesen werden sollen
- Das Array, in das die Daten geschrieben werden sollen, besteht aus Elementen zu je 1 Byte
Das ganze sollte in C geschrieben werden.
Soweit bin ich:
#define MAX_BUFFER_SIZE 65536
Uint8 buffer[MAX_BUFFER_SIZE];
FILE* diskimage;
void read_image(void);
void read_image(void) {
diskimage = fopen("./image.raw","r");
}
Danke für alle Tipps!
Andreas
Hilfreich?
0
Kommentare
Marcel Bresink
10.01.12
10:22
#include <stdio.h>
#define BLOCKSIZE 512
void readImage(const char *path, unsigned int startBlock, unsigned int blockCount)
{
unsigned char *buffer;
size_t size;
FILE *diskImage;
size = (size_t)(blockCount * BLOCKSIZE);
buffer = (unsigned char *)malloc(size);
diskImage = fopen(path, "r");
fseek(diskImage, (long)(startBlock * BLOCKSIZE), SEEK_SET);
fread(buffer, size, 1, diskImage);
fclose(diskImage);
// Array buffer[] kann benutzt werden.
free(buffer);
}
Es fehlt allerdings jegliche Fehlerbehandlung und Berücksichtigung von 32- oder 64-Bit-Umgebungen.
Hilfreich?
0
andreas_g
10.01.12
11:56
Vielen Dank!
Das werde ich heute abend testen.
Hilfreich?
0
andreas_g
10.01.12
21:36
Konnte den Code erfolgreich einsetzen! Nochmals vielen Dank!
Hilfreich?
0
Kommentieren
Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.