Binär Vergleich zweier Strings in C (Linux)

horvatj

Grünschnabel
Hallo!

Lese blockweise (bel. Blockgrösse, z.B. 1024 bit) Daten einer Quellfestplatte (z.B. /dev/sda) und einer zuvor geklonten Zielfestplatte jeweils in ein unsigned char *.

Wie kann ich diese beiden Puffer binär vergleichen?

Habs mit strcmp versucht, funktioniert irgendwie nicht...
Könnt Ihr mir vielleicht helfen?

Codefragmente:
/* --------------------- */
unsigned char *buffer1;
unsigned char *buffer2;
[...]
do {
/* read block from source device */
loop = fread (buffer1, size, n_memb, file_ptr);
/* read block from destination device */
readloop = fread(buffer2, size, n_memb, destination_file_ptr);
/* compare them */
[...]
} while (loop == n_memb);
/* --------------------- */

Danke Johann
 
Du kannst doch einfach die Arrays Zeichenweise durchlaufen und vergleichen.
Macht aber strcmp() auch.
Also ungefähr so:

Code:
bool vergleich(unsigned char* buf1, unsigned char* buf2, int buf_length)
{
   for(int i=0; i<buf_length; i++)
   {
      if(buf1[i] != buf2[i])
           return false;   // die beiden buffer sind ungleich
   }
    return true; // die beiden buffer sind identisch
}


Gruß Homer
 
Zurück