const char *sqlite3_db_name(sqlite3 *db, int N);
sqlite3_db_name(D,N) 接口返回指向数据库连接 D 上第 N 个数据库的模式名称的指针,如果 N 超出范围则返回 NULL 指针。N 值为 0 表示主数据库文件。N 为 1 是“temp”模式。较大的 N 值对应于各种附加的数据库。
sqlite3_db_name() 返回的字符串的存储空间由 SQLite 本身管理。该字符串可能会被任何更改模式的操作释放,包括ATTACH 或 DETACH 或对 sqlite3_serialize() 或 sqlite3_deserialize() 的调用,甚至是在不同线程上发生的操作。需要长期记住该字符串的应用程序应自行复制。在多个线程上同时访问同一数据库连接的应用程序应使用互斥锁保护对该 API 的调用,并在释放互斥锁之前自行复制结果。