Suche für Binäre Muster in C (Read buffered-Binär-Datei)

Hey es. Ich bin versucht, zu schreiben ein kleines Programm, Lesen Sie die vier folgenden bytes nach dem letzten vorkommen von "0xFF 0xC0 0x00 0x11", das kann leicht konvertiert werden, um Binär oder dezimal. Der Zweck ist, dass die 2-5 bytes nach dem letzten vorkommen, dass hex-Muster repräsentieren die Breite und Höhe einer JPEG-Datei.

#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, ich weiß nicht, wie zu Lesen, aus dem gepufferten Speicher rekursiv und die meisten vor kurzem Las variable als int zu vergleichen, gegen meine Binär/hex/dec.

Wie mache ich das?

InformationsquelleAutor Supernovah | 2009-10-09

Schreibe einen Kommentar