#### 4.7.1 Wisdom Export

         void fftw_export_wisdom_to_file(FILE *output_file);
         char *fftw_export_wisdom_to_string(void);
         void fftw_export_wisdom(void (*write_char)(char c, void *), void *data);

These functions allow you to export all currently accumulated wisdom in a form from which it can be later imported and restored, even during a separate run of the program. (See Words of Wisdom-Saving Plans.) The current store of wisdom is not affected by calling any of these routines.

`fftw_export_wisdom` exports the wisdom to any output medium, as specified by the callback function `write_char`. `write_char` is a `putc`-like function that writes the character `c` to some output; its second parameter is the `data` pointer passed to `fftw_export_wisdom`. For convenience, the following two “wrapper” routines are provided:

`fftw_export_wisdom_to_file` writes the wisdom to the current position in `output_file`, which should be open with write permission. Upon exit, the file remains open and is positioned at the end of the wisdom data.

`fftw_export_wisdom_to_string` returns a pointer to a `NULL`-terminated string holding the wisdom data. This string is dynamically allocated, and it is the responsibility of the caller to deallocate it with `free` when it is no longer needed.

All of these routines export the wisdom in the same format, which we will not document here except to say that it is LISP-like ASCII text that is insensitive to white space.