Next: Forgetting Wisdom, Previous: Wisdom Export, Up: Wisdom

#### 4.7.2 Wisdom Import

         int fftw_import_system_wisdom(void);
         int fftw_import_wisdom_from_filename(const char *filename);
         int fftw_import_wisdom_from_string(const char *input_string);
         int fftw_import_wisdom(int (*read_char)(void *), void *data);

These functions import wisdom into a program from data stored by the `fftw_export_wisdom` functions above. (See Words of Wisdom-Saving Plans.) The imported wisdom replaces any wisdom already accumulated by the running program.

`fftw_import_wisdom` imports wisdom from any input medium, as specified by the callback function `read_char`. `read_char` is a `getc`-like function that returns the next character in the input; its parameter is the `data` pointer passed to `fftw_import_wisdom`. If the end of the input data is reached (which should never happen for valid data), `read_char` should return `EOF` (as defined in `<stdio.h>`). For convenience, the following three “wrapper” routines are provided:

`fftw_import_wisdom_from_filename` reads wisdom from a file named `filename`. A lower-level function, which requires you to open and close the file yourself (e.g. if you want to read wisdom from a portion of a larger file) is `fftw_import_wisdom_from_file`. This reads wisdom from the current position in `input_file` (which should be open with read permission); upon exit, the file remains open, but the position of the read pointer is unspecified.

`fftw_import_wisdom_from_string` reads wisdom from the `NULL`-terminated string `input_string`.

`fftw_import_system_wisdom` reads wisdom from an implementation-defined standard file (`/etc/fftw/wisdom` on Unix and GNU systems).

The return value of these import routines is `1` if the wisdom was read successfully and `0` otherwise. Note that, in all of these functions, any data in the input stream past the end of the wisdom data is simply ignored.