Функции форматированного вывода строк
char *sqlite3_mprintf(const char*,...); char *sqlite3_vmprintf(const char*, va_list); char *sqlite3_snprintf(int,char*,const char*, ...); char *sqlite3_vsnprintf(int,char*,const char*, va_list);
Эти функции являются аналогами семейства функций "printf()" из стандартной библиотеки C. Они поддерживают большинство общих опций форматирования из стандартной библиотеки printf(), а также некоторые дополнительные нестандартные форматы (%q, %Q, %w и %z). Подробности см. в документации на встроенную функцию printf().
Функции sqlite3_mprintf() и sqlite3_vmprintf() записывают свои результаты в память, полученную из sqlite3_malloc64(). Строки, возвращаемые этими двумя функциями, должны быть освобождены с помощью sqlite3_free(). Обе функции возвращают указатель NULL, если sqlite3_malloc64() не может выделить достаточно памяти для хранения результирующей строки.
Функция sqlite3_snprintf() аналогична функции "snprintf()" из стандартной библиотеки C. Результат записывается в буфер, переданный в качестве второго параметра, размер которого задаётся первым параметром. Обратите внимание, что порядок первых двух параметров обратный по сравнению с snprintf(). Это историческое недоразумение, которое нельзя исправить без нарушения обратной совместимости. Также обратите внимание, что sqlite3_snprintf() возвращает указатель на свой буфер, а не количество фактически записанных символов. Мы признаём, что количество записанных символов было бы более полезным значением возврата, но мы не можем изменить реализацию sqlite3_snprintf() сейчас без нарушения совместимости.
Пока размер буфера больше нуля, sqlite3_snprintf() гарантирует, что буфер всегда завершается нулём. Первый параметр "n" — это общий размер буфера, включая место для завершающего нуля. Таким образом, самая длинная строка, которая может быть полностью записана, будет содержать n-1 символов.
Функция sqlite3_vsnprintf() — это версия функции sqlite3_snprintf() с переменным числом аргументов.
См. также: встроенную функцию printf(), функцию printf() SQL
См. также списки объектов, констант и функций.
SQLite is in the Public Domain.
https://sqlite.org/c3ref/mprintf.html