Daten binär Lesen/Schreiben in C

Übersicht Sonstiges Smalltalk

Neue Antwort erstellen

NightPhoenix

Betreff: Daten binär Lesen/Schreiben in C

BeitragMo, Apr 04, 2011 11:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Community!

Ich weiß, das hier ist das BB Portal, dennoch ist diese Frage an diejenigen gerichtet die sich auch mit C auskennen.
Ich möchte in C (nicht C++ !) ein Programm schreiben, welches Daten wie z.b. Integer in eine binär Datei schreibt, welche man mit einem Hex Editor einsehen kann.
Am Ende soll sowas typisches heraus kommen, wie wenn man die .bin Datei in einem normalen Texteditor öffnet, dass statt dem Integer nur 4 Zeichen (je 1 Byte -> Bereich 0-255) erscheinen.

Ich muss diese Daten (Variablen) schreiben, sowie lesen.


Die Fragen die ich mir jetzt stelle:

1. Welche Befehle sind dafür grundlegend nötig, bzw. welche Standard-lib würdet ihr mir ans Herz legen?
2. Wie zerlege ich beim schreiben ein 4byte Int in 4x 1byte? Und umgekehrt, wie lese ich die 4 byte so, dass sie intern wieder als ein 4byte Int verwendbar sind?
3. Wie unterscheidet eigentlich ein Textprogramm ob es bei einer Folge von 4 Byte das als Integer (Zahl) anzeigen soll oder als 4 Zeichen im Bereich von 0-255? Ich vermute da gibt es eine Art Header der den Dateiinhalt definiert?


MfG.

ToeB

BeitragMo, Apr 04, 2011 11:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Zu 1 und 2 kann ich nichts genaueres sagen, aber zu 3, denn ein Textprogramm (z.B. der "Editor" von Windows) ließt wirklich nur Byte für Byte aus und gibt jedes Byte als Char aus. Wenn man dort Zahlen sieht, dann ist es nichst weiter als eine abfolge von Ascii-zeichen, die in der Datei so gespeichert sind.


mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!
 

ChristianK

BeitragMo, Apr 04, 2011 14:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Zu 1. und 2.:
Am besten nimmst du die Standard C-Library (#include <stdio.h>). Eine Datei öffnest du mit fopen. Daten schreibst du mit fwrite. Einen Integer brauchst du dabei nicht in einzelne Bytes zu zerlegen. Stattdessen übergibst du fwrite einen Zeiger auf deinen 4-Byte-Integer:

Code: [AUSKLAPPEN]
int meinInteger = 42;
fwrite(&meinInteger, sizeof(int), 1, datei);
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group