Мне нужно сравнить 2 символа с файловыми дескрипторами.сравнение символьных дескрипторов файлов c
мой файл sample.txt включает в себя «первым» мой файл sample2.txt включает в себя «firbbbbbbst»
Мне нужно вернуться «не похож», но он всегда возвращается «похожи» и никогда не читает строки в буфер.
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;
}
Почему бы не использовать * strncmp *? http://en.cppreference.com/w/c/string/byte/strncmp – Louen
это не проблема, проблема в том, что данные никогда не попадают в буфер – aviadm71
Выбрасывайте '&' оператор при передаче 'buffer' и' buffer2' to 'fread'. –