int fftw_export_wisdom_to_filename(const char *filename); 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 three “wrapper” routines are provided:
fftw_export_wisdom_to_filename
writes wisdom to a file named
filename
(which is created or overwritten), returning 1
on success and 0
on failure. A lower-level function, which
requires you to open and close the file yourself (e.g. if you want to
write wisdom to a portion of a larger file) is
fftw_export_wisdom_to_file
. This 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.