Kouhei Sutou
kou****@cozmi*****
2008年 7月 8日 (火) 11:51:33 JST
須藤です。 正しい挙動がわからないので教えてください。 以下のプログラムを実行するとこのような出力なります。 1:192:128 3:64:0 key2用のsen_pat_lookup()でもSEN_TABLE_ADDEDが立って 1:192:128 3:192:128 となるかなぁと思いました。 # もしよかったらSISはなんの略か教えてもらえませんか? # いろいろわからなくてすみません。 /* -*- c-file-style: "gnu" -*- */ #include <stdio.h> #include <string.h> #include <pat.h> int main(int argc, char **argv) { sen_ctx *context; sen_pat *pat; sen_id id; void *value; const char key1[] = "セナ"; const char key2[] = "セナセナ"; sen_table_search_flags flags; sen_init(); context = sen_ctx_open(NULL, SEN_CTX_USEQL); pat = sen_pat_create(context, "/tmp/xxx", SEN_PAT_MAX_KEY_SIZE, 64, SEN_PAT_WITH_SIS, sen_enc_utf8); flags = SEN_TABLE_ADD; id = sen_pat_lookup(pat, key1, strlen(key1), &value, &flags); printf("%u:%d:%ld\n", id, flags, flags & SEN_TABLE_ADDED); flags = SEN_TABLE_ADD; id = sen_pat_lookup(pat, key2, strlen(key2), &value, &flags); printf("%u:%d:%ld\n", id, flags, flags & SEN_TABLE_ADDED); sen_fin(); return 0; }