Thanks Richard. I was afraid that might be the answer. So, there's really no way to accomplish this in a 100% reliable manner? 1. Create a temporary database 2. Use it in an ATTACH DATABASE statement (or any other context where the name might be needed) It seems like I have no choice but to delete the file created by mkstemp and pass the name to sqlite3_open, which is far from ideal. How do I submit a request that the SQLite team provide a solution to this in a future version?