在 Linux 系统上,我有一个使用预写日志记录创建的 SQLite 数据库,例如,由用户“bob”创建。
/home/bob/sqliteTest/test.db
我还有一个已编译的程序,称为“sqliteTest”,其中包含 sqlite 命令。
如果用户“bob”运行 sqliteTest 程序,它将运行完成,并且 test.db 所在的目录中没有 wal shm 文件。
为了允许其他用户访问 test.db,我允许每个人都拥有对 sqliteTest 目录的写/执行权限。
因此,用户“joe”出现并决定运行 sqliteTest 程序。"joe" 运行程序直到完成,但是当他完成时,wal 和 shm 文件仍然保留在目录中,所有者为 "joe",只读,除了可由 "joe" 写入。
就像我说的,我已经更改了允许任何人写入/执行的权限。所以,这真的难倒我。如果“bob”用户在该过程完成后没有这些文件,那么代码似乎正在正确地清理自己。谢谢你的帮助!凯文乙