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;
}