Загрузка расширения
int sqlite3_load_extension( sqlite3 *db, /* Load the extension into this database connection */ const char *zFile, /* Name of the shared library containing extension */ const char *zProc, /* Entry point. Derived from zFile if 0 */ char **pzErrMsg /* Put error message here if not 0 */ );
Этот интерфейс загружает библиотеку расширения SQLite из указанного файла.
Интерфейс sqlite3_load_extension() пытается загрузить библиотеку расширения SQLite, содержащуюся в файле zFile. Если файл не может быть загружен напрямую, предпринимаются попытки загрузки с добавлением различных расширений, специфичных для операционной системы. Например, если "samplelib" не может быть загружен, то могут быть также попытки загрузки с именами "samplelib.so", "samplelib.dylib" или "samplelib.dll".
Точка входа — zProc. zProc может быть 0, в этом случае SQLite попытается определить точку входа самостоятельно. Сначала она попробует "sqlite3_extension_init". Если это не сработает, она создаст имя "sqlite3_X_init", где X состоит из строчных эквивалентов всех буквенных ASCII символов в имени файла от последнего "/" до первого последующего "." и исключая любой начальный "lib". Интерфейс sqlite3_load_extension() возвращает SQLITE_OK при успешной загрузке и SQLITE_ERROR в случае возникновения проблемы. Если произошла ошибка, и pzErrMsg не 0, то интерфейс sqlite3_load_extension() попытается заполнить *pzErrMsg сообщением об ошибке, сохраненным в памяти, полученной из sqlite3_malloc(). Вызывающая функция должна освободить эту память, вызвав sqlite3_free().
Загрузка расширений должна быть включена с помощью sqlite3_enable_load_extension() или sqlite3_db_config(db,SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION,1,NULL) до вызова данного API, в противном случае будет возвращена ошибка.
Предупреждение по безопасности: Рекомендуется использовать метод SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION для включения только этого интерфейса. Следует избегать использования интерфейса sqlite3_enable_load_extension(). Это позволит сохранить функцию SQL load_extension() отключенной и предотвратить SQL-инъекции, которые могут предоставить злоумышленникам доступ к возможностям загрузки расширений.
См. также функцию SQL load_extension().
Также см. списки Объектов, Констант и Функций.
SQLite is in the Public Domain.
https://sqlite.org/c3ref/load_extension.html