1
memcached_get (memcached_st *ptr,
               const char *key, size_t key_length,
               size_t *value_length,
               uint32_t *flags,
               memcached_return_t *error);

ここでパラメータ「size_t key_length」と「size_t *value_length」を渡す必要があるのはなぜですか? 値はキーで直接取得できると思います。

理由を教えてくれる人、ありがとう。

4

1 に答える 1

3

key パラメータは、memcache から取得する情報の識別子へのポインタです。key_length は、識別子データの長さを memcached_get() 関数に伝えます。

libmemcache API が、key パラメーターが指すデータが NULL で終わる文字列であると想定した場合、key_length パラメーターも渡す必要はありません。しかし、その仮定を行わないことで、API は NULL で終わる char 文字列以外のデータ (UTF-16 文字列や 2 進数など) をキーとして使用できるようにします。

于 2010-11-23T23:37:10.943 に答える