我已經使用SQLite創建在C數據庫。這裏是代碼:我的sqlite數據庫文件的位置在哪裏?
int x = sqlite3_open(argv[1], &db);
argv[1]
是一個參數,其中包含數據庫的名稱。我認爲數據庫應該存儲在以.db結尾的文件中,但我無法找到該文件。
我在哪裏可以找到提到的文件(數據庫結構等文件...)?您使用的是Linux
我已經使用SQLite創建在C數據庫。這裏是代碼:我的sqlite數據庫文件的位置在哪裏?
int x = sqlite3_open(argv[1], &db);
argv[1]
是一個參數,其中包含數據庫的名稱。我認爲數據庫應該存儲在以.db結尾的文件中,但我無法找到該文件。
我在哪裏可以找到提到的文件(數據庫結構等文件...)?您使用的是Linux
我就可以在終端上使用「查找」命令,這樣
locate *.db
/目錄
。您將獲得位置
我認爲這個定位命令可能對你有所幫助..你也可以使用find命令來查找任何文件..無論如何你沒有提到你的操作系統 – Omkant
由於[定位取決於其數據庫的新鮮度](http: //unixhelp.ed.ac.uk/CGI/man-cgi?locate+1)和updatedb的通常運行一夜之間,他將不得不等到明天找到他的檔案:-)與此同時,他可以用[發現]( http://unixhelp.ed.ac.uk/CGI/man-cgi?find) – fvu
最好是引用參數('定位「* .db''),或者你可能找到錯誤的文件。例如,如果您在包含test.db的目錄中執行此操作,shell將發送以查找擴展名稱'test.db',並且您的「locate test.db」命令將找不到所有.db文件,但只有那些稱爲* exact *'test.db'。 – LSerni
無論您指定的路徑或程序在哪裏運行(例如,您的目錄爲C:\Users\User Name
),都會創建該文件。
它不一定是.db
擴展名,也就是說:您可以創建一個名爲您想要的文件。如果您需要查找它,也許您可以嘗試查找在給定時間間隔內創建的文件。
您的最佳選擇是始終指定完整路徑,並使用.sqlite或.db擴展名創建文件。
sqlite3_open被定義爲
int sqlite3_open(
const char *filename, /* Database filename (UTF-8) */
sqlite3 **ppDb /* OUT: SQLite db handle */
);
所以數據庫被稱爲不管你把第一個參數是。 .db後綴將不會自動添加。
至於存儲文件的目錄,如果您在argv 1中指定了存儲文件的絕對路徑,如果不存在,它應該位於當前工作目錄中。
如果你確實需要這個文件回來,它不是你期望的那樣,也沒有.db擴展名(因爲你忘了指定它),你不記得你給的名字最後一個可能性:看sqlite file format specification,一個SQLite文件總是以「SQLite的格式3 \ 000」(一個空結束的字符串)開始。
find/-exec grep -l "SQLite format 3" {} \;
這將打印名稱包含字符串的所有文件&路徑,但該命令將花費一些時間...
sqlite3_open
記錄爲創建數據庫,但SQLite的也不會真正創造文件直到您對數據庫進行任何更改。
創建一個表以確保文件將被創建。
是什麼'的argv [1]'的內容是什麼? – quantum