Next: , Previous: Wisdom, Up: Wisdom


4.7.1 Wisdom Export

     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.