勇芳软件工作室.汉化:  SQLite3 API Functions > General >

sqlite3_randomness

Previous pageReturn to chapter overviewNext page

描述

 

伪随机数发生器。

 

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

}