in src/annoylib.h [1093:1127]
bool save(const char* filename, bool prefault=false, char** error=NULL) {
if (!_built) {
set_error_from_string(error, "You can't save an index that hasn't been built");
return false;
}
if (_on_disk) {
return true;
} else {
// Delete file if it already exists (See issue #335)
#ifndef _MSC_VER
unlink(filename);
#else
_unlink(filename);
#endif
FILE *f = fopen(filename, "wb");
if (f == NULL) {
set_error_from_errno(error, "Unable to open");
return false;
}
if (fwrite(_nodes, _s, _n_nodes, f) != (size_t) _n_nodes) {
set_error_from_errno(error, "Unable to write");
return false;
}
if (fclose(f) == EOF) {
set_error_from_errno(error, "Unable to close");
return false;
}
unload();
return load(filename, prefault, error);
}
}