小巧、快速、可靠。
選擇其中三項。

SQLite C 介面

建立與銷毀 VFS 檔案名稱

sqlite3_filename sqlite3_create_filename(
  const char *zDatabase,
  const char *zJournal,
  const char *zWal,
  int nParam,
  const char **azParam
);
void sqlite3_free_filename(sqlite3_filename);

這些介面提供給VFS shim實作使用,在此之外的環境中並無用途。

sqlite3_create_filename(D,J,W,N,P) 會配置記憶體來儲存資料庫檔案名稱 D 的版本,其中包含對應的日誌檔案 J 和 WAL 檔案 W,以及陣列 P 中的 N 個 URI 參數鍵值對。 sqlite3_create_filename(D,J,W,N,P) 的結果是一個指向資料庫檔案名稱的指標,可以安全地傳遞給像是

如果發生記憶體配置錯誤,sqlite3_create_filename() 可能會傳回 NULL 指標。 透過 sqlite3_create_filename(X) 取得的記憶體必須透過對應的 sqlite3_free_filename(Y) 呼叫來釋放。

sqlite3_create_filename(D,J,W,N,P) 中的 P 參數應該是一個指向字串的 2*N 個指標的陣列。 這個陣列中的每一對指標都對應於查詢參數的鍵和值。 如果 N 為零,則 P 參數可以是 NULL 指標。 P 陣列中的 2*N 個指標都不能是 NULL 指標,且鍵指標不應為空字串。 sqlite3_create_filename(D,J,W,N,P) 的 D、J 或 W 參數都不能是 NULL 指標,但它們可以是空字串。

sqlite3_free_filename(Y) 函式會釋放先前從 sqlite3_create_filename() 取得的記憶體配置。 當 Y 是 NULL 指標時,呼叫 sqlite3_free_filename(Y) 是無害的空操作。

如果 sqlite3_free_filename(Y) 的 Y 參數不是 NULL 指標,也不是先前從 sqlite3_create_filename() 取得的指標,則可能會發生堆積損壞或區段錯誤等不良情況。 呼叫 sqlite3_free_filename(Y) 後,不應再次使用 Y 值。 這表示如果已使用 Y 呼叫 VFS 的 sqlite3_vfs.xOpen() 方法,則在呼叫 sqlite3_free_filename(Y) 之前,也應該呼叫對應的 [sqlite3_module.xClose()] 方法。

另請參閱物件常數函式列表。