V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
hkitdog
V2EX  ›  问与答

这个是什么搜索算法?

  •  
  •   hkitdog · 2019-07-31 14:42:56 +08:00 via iPhone · 768 次点击
    这是一个创建于 1729 天前的主题,其中的信息可能已经有所发展或是发生改变。
    for (;bytes_to_read;)
    这句什么含义?相当于 while(1)???

    void searchfile(const char *filename, int fd, const unsigned char *value, const unsigned char *mask, int len)
    {
    off_t offset = 0;
    unsigned char buf[1024];

    len--;

    while (1)
    {
    int r;

    memmove(buf, buf + sizeof(buf) - len, len);
    r = read(fd, buf + len, sizeof(buf) - len);

    if (r < 0)
    {
    perror("read");
    return;
    } else if (!r)
    return;

    int o, i;
    for (o = offset ? 0 : len; o < r; ++o)
    {
    for (i = 0; i <= len; ++i)
    if ((buf[o + i] & mask[i]) != value[i])
    break;
    if (i > len)
    {
    unsigned long long pos = (unsigned long long)(offset + o - len);
    printf("%s: %08llx\n", filename, pos);
    if (bytes_before || bytes_after)
    dump_context(fd, pos);
    }
    }

    offset += r;

    }
    }
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2919 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:28 · PVG 08:28 · LAX 17:28 · JFK 20:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.