我需要获取二进制文件并搜索其内容是否出现在我阅读的其他二进制文件中。我应该使用内置功能吗?
答案 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);
}