分类: LINUX
2006-07-19 16:25:06
用法:./wbquery 中
显示:k,kh,khk
#include "wbquery.h"
RB_HEAD(key_value, key_value_t) h;
static int
key_compare(key_value_t *kt1, key_value_t *kt2)
{
int rc;
!(rc = strcmp(kt1->key, kt2->key)) && (rc = kt1->index - kt2->index);
return rc;
}
RB_PROTOTYPE(key_value, key_value_t, entries, key_compare);
RB_GENERATE(key_value, key_value_t, entries, key_compare);
int
main(int argc, char *argv[])
{
key_value_t *p, *p1, find;
RB_INIT(&h);
for (p = kv; p->key; ++p)
{
p->index = 0;
while ((p1 = RB_INSERT(key_value, &h, p)) != NULL)
{
p->index = p1->index + 1;
}
}
if (argc > 1)
{
find.key = argv[1];
find.index = 0;
if ((p = RB_FIND(key_value, &h, &find)) != NULL)
{
for (p1 = p; p1 && !strcmp(p1->key, argv[1]); p1 = RB_NEXT(key_value, &h, p1))
{
printf("%s%s", p1->index? ",": "", p1->value);
}
printf("\n");
}
}
return 0;
}
![]() |
|