# Dumping data from a server

## SYNOPSIS

#include <libmemcached/memcached.h>

  Compile and link with -lmemcached

typedef memcached_return_t (*memcached_dump_fn)(memcached_st *ptr, const char *key, size_t key_length, void *context)
  Param ptr:

    pointer to `memcached_st` object

  Param key:

    key string being dumped

  Param key_length:

    length of the key without any terminating zero

  Param context:

    pointer to the user supplied context

  Returns:

    `memcached_return_t` indicating success

memcached_return_t memcached_dump(memcached_st *ptr, memcached_dump_fn *function, void *context, uint32_t number_of_callbacks)
  Parameters:

    - ptr -- pointer to initialized `memcached_st` struct

    - function -- pointer to `number_of_callbacks` `memcached_dump_fn` callbacks

    - context -- pointer to a user managed context

    - number_of_callbacks -- number of callbacks in the `function` array

  Returns:

    `memcached_return_t` indicating success

## DESCRIPTION

`memcached_dump()` is used to get a list of keys found in memcached(1) servers. Because memcached does not guarantee to dump all keys you can not assume you have fetched all keys from the server. The function takes an array of callbacks that it will use to execute on keys as they are found.

Currently the binary protocol is not tested.

## RETURN VALUE

A value of type `memcached_return_t` is returned. On success that value will be `MEMCACHED_SUCCESS`. Use `memcached_strerror()` to translate this value to a printable string.

## SEE ALSO

- C/C++ Client Library for memcached

- Converting Error Codes to Messages