RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Small. Fast. Reliable.
Choose any three.

SQLite C Interface

Функции печати отформатированной строки

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).

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() является varargs-версией sqlite3_snprintf().

См. также: built-in printf(), Функция SQL printf()