如果二进制文件的内容出现在另一个二进制文件中,如何在C中搜索?

时间:2018-05-20 10:04:49

标签: c file binary

我需要获取二进制文件并搜索其内容是否出现在我阅读的其他二进制文件中。我应该使用内置功能吗?

1 个答案:

答案 0 :(得分:0)

您可以使用命令fread创建两个缓冲区,在每个缓冲区中存储二进制文件。比较要搜索的行并计算连续的字节数 例如:

int i = 0;
int isInfected = 0;
char* virusSign = 0;
int count = 0;
int size = 0;
int fileSize = 0;
int index = 0;
char* buffer = 0;

注意:在这种情况下,“病毒”是我要搜​​索的二进制内容。虽然destFile是我正在搜索的文件二进制文件:

while (index < fileSize && !isInfected)
{
    if (virusSign[i] != buffer[index] && count != size - 1)
    {
        i = 0;
        count = 0;
    }
    else
    {
        count++;
    }
    if (count == size)
    {
        isInfected = TRUE;
    }
    i++;
    index++;
}
if (virus != NULL)
{
    fclose(virus);
}
if (destFile != NULL)
{
    fclose(destFile);
}