> I suggest this approach:
>
> 1. Open the database file using sqlite3_open()
> 2. Run sqlite3_exec("BEGIN IMMEDIATE");
> 3. Make a copy of the raw database file using whatever
> high-speed file copy mechanism is at hand.
> 4. sqlite3_close();
>
> The BEGIN IMMEDIATE operation in step 2 will acquire a read-lock on the
> database file which will insure that no other process modifies the file
> during step 3. But it is also only a read-lock so other processes can
> continue to read the database while you are copying it. Step 4 releases
> the file lock.
This is simpler than what I did, but basically the same conceptually.
---
The Castles of Dereth Calendar: a tour of the art and architecture of
Asheron's Call
http://www.lulu.com/content/77264