最近在實現乙個linux下程式的時候,需要程式可以呼叫linux系統下面指定的應用程式。如果這是windows程式,那麼可以通過regopenkey和regopenkey讀取登錄檔找到指定程式的安裝路徑,再利用createprocess函式進行呼叫即可完成前面提到的功能。
因為每個人安裝程式的習慣不一樣,同乙個程式在不同作業系統下的執行路徑可能不一樣,linux下沒有登錄檔這一說,也就無法利用登錄檔來找到程式的執行路徑。由此想到利用強大的shell命令來完成這一功能。首先介紹一下which指令,which指令用於查詢可執行檔案的位置,具體說明如下:
1.命令格式:
which 可執行檔名稱
2.命令功能:
which指令會在path變數指定的路徑中,搜尋某個系統命令的位置,並且返回第乙個搜尋結果。
3.命令引數:
-n 指定檔名長度,指定的長度必須大於或等於所有檔案中最長的檔名。
-p 與-n引數相同,但此處的包括了檔案的路徑。
-w 指定輸出時字段的寬度。
-v 顯示版本資訊
寫乙個簡單的shell指令碼即可得到程式的執行路徑,在本例用vboxmanage做示例。**如下:
which vboxmanage
儲存為shell.sh
程式呼叫shell.sh並且儲存程式執行路徑的**如下所示:
file *fp;
char buffer[100];
fp = popen("./shell.sh","r");
fgets(buffer,sizeof(buffer),fp);
pclose(fp);
上述**片段即可把指令碼執行得到的字串保持到buffer陣列中。
Linux下的指令 查詢指令 find
linux下find命令在目錄結構中搜尋檔案,並執行指定的操作。1.linux下find命令格式 find pathname options print exec ok 2.命令功能 用於在檔案樹中查詢檔案,並作出相應的處理 可能訪問磁碟 3.命令引數 pathname find命令所查詢的目錄路徑...
Linux下的常用指令
lsmod 檢視模組 kudzu 硬體檢測 lspci 檢視網絡卡所需的型號 df h 檢視硬碟各區的使用情況 free m 檢視記憶體和swap使用情況 fdisk l 檢視掛載的硬碟 usb等情況 mkfs t est3 dev sda 將第一塊硬碟格式ext3格式 fdisk dev sda ...
linux下的find指令
在linux下我們可以用到三個命令來查詢檔案,通常我們都是先使用whereis或者是locate來檢查,如果真的找不到了我們才以find來找。為什麼呢?因為whereis和locate是利用資料庫來查詢資料,所以相當快速,而且並沒有實際查詢硬碟,比較節省時間。但是find是直接查詢硬碟,如果你的硬碟...