Ich muss 2 Zeichen aus Dateideskriptoren vergleichen.Vergleichen Char off Dateideskriptoren c
meine Datei sample.txt enthält „erste“ meine Datei Sample2.txt „firbbbbbbst“
Ich brauche enthält „nicht ähnlich“ zurückzukehren, aber es gibt immer „ähnlich“ und nie tatsächlich liest die Zeilen der Puffer.
int main(int argc, char **argv)
{
ssize_t ret_in, ret_out;
char buffer[BUF_SIZE];
char buffer2[BUF_SIZE];
int where=0;
int fileDes1;
int fileDes2;
fileDes1 = open("home/aviad/Desktop/comparing/in1/sample.txt", O_RDONLY);
fileDes2 = open("home/aviad/Desktop/comparing/in2/sample2.txt", O_RDONLY);
while((ret_in = fread (buffer, BUF_SIZE, 1, fileDes1)) > 0)
{
ret_out= fread (buffer, BUF_SIZE, 1, fileDes2);
if (buffer[where] == buffer2[where])
{
printf("%c", buffer[where]);
where++;
}
else {
printf("nor similar\n");
break;
}
}
printf("similar\n");
printf("%c", buffer[2]); //garbage
printf("%c", buffer2[2]); //garbage
return 0;
}
Warum nicht * strncmp * verwenden? http://en.cppreference.com/w/c/string/byte/strncmp – Louen
Dies ist nicht das Problem, das Problem ist, dass Daten nie in den Puffer – aviadm71
fallen Lassen Sie den '&' -Operator beim Übergeben von 'Puffer' und' Puffer2' zu 'fread'. –