2 Stimmen

Suche nach binären Mustern in C (gepufferte Binärdatei lesen)

Hallo zusammen. Ich versuche, ein kleines Programm zu schreiben, das die vier folgenden Bytes nach dem letzten Vorkommen von "0xFF 0xC0 0x00 0x11" liest, die leicht in binär oder dezimal umgewandelt werden können. Der Zweck ist, dass die 2-5 Bytes nach dem letzten Vorkommen dieses Hex-Musters die Breite und Höhe einer JPEG-Datei darstellen.

#include <stdio.h>

 int main () {
  FILE * pFile;
  long lSize;
  char * buffer;
  size_t result;

  pFile = fopen ( "pano8sample.jpg" , "rb" );
  if(pFile==NULL){
   fputs ("File error",stderr);
   exit (1);
  }

  fseek (pFile , 0 , SEEK_END);
  lSize = ftell (pFile);
  rewind (pFile);

  printf("\n\nFile is %d bytes big\n\n", lSize);

  buffer = (char*) malloc (sizeof(char)*lSize);
  if(buffer == NULL){
   fputs("Memory error",stderr);
   exit (2);
  }

  result = fread (buffer,1,lSize,pFile);
  if(result != lSize){
   fputs("Reading error",stderr);
   exit (3);
  }

  //0xFF 0xC0 0x00 0x11 (0x08)

  //Logic to check for hex/binary/dec

  fclose (pFile);
  free (buffer);
  return 0;
 }

Das Problem ist, dass ich nicht weiß, wie man aus dem gepufferten Speicher rekursiv lesen und die zuletzt gelesene Variable als int zum Vergleich mit meiner binären/hex/dec verwenden.

Wie kann ich das tun?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X