描述
伪随机数发生器。
C / C ++语法
void sqlite3_randomness(int N, void *P); |
PB语法
SUB sqlite3_randomness ( _ BYVAL numBytes AS LONG, _ BYREF pBuffer AS ANY _ ) |
参数
numBytes
[in]存储在传递缓冲区中的随机字节数。
pBuffer
[inout]缓冲区将分配随机字节。
返回值
无返回值。
备注
SQLite包含一个高质量的伪随机数生成器(PRNG),用于在将新记录插入已经使用尽可能大的ROWID的表中时选择随机ROWID。PRNG也用于内置的random()和randomblob()SQL函数。此函数允许应用程序访问相同的PRNG用于其他目的。
对该函数的调用将N个随机字节存储到缓冲器P中。
第一次调用该函数(内部或应用程序),使用从sqlite3_vfs默认sqlite3_vfs对象的xRandomness方法获取的随机性来种子PRNG。在所有后续调用中,伪随机性都是内部生成的,而不追求sqlite3_vfsxRandomness方法。
C ++实现代码
/*
** Attempt to release up to n bytes of non-essential memory currently
** held by SQLite. An example of non-essential memory is memory used to
** cache database pages that are not currently in use.
*/
SQLITE_API int sqlite3_release_memory(int n){
#ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT
return sqlite3PcacheReleaseMemory(n);
#else
/* IMPLEMENTATION-OF: R-34391-24921 The sqlite3_release_memory() function
** is a no-op returning zero if SQLite is not compiled with
** SQLITE_ENABLE_MEMORY_MANAGEMENT. */
UNUSED_PARAMETER(n);
return 0;
#endif
}