假設我有一個我編寫的應用程序,它依賴於安裝在我的機器上的externat應用程序上的某些任務(讓我們稱之爲「工具」)。在我的程序中,我把它稱爲system("tool myarguments");
,工作正常。檢測程序是否安裝在機器上
現在,我想分發我的應用程序。當然,最終用戶可能沒有在他的機器上安裝「工具」,所以我希望我的應用程序檢查這一點,併爲用戶打印一條消息。所以我的問題是:
是否有一種便攜的方式來檢查機器上是否存在應用程序?(假設我們知道它的名字並且它可以通過機器的外殼訪問)。
更多信息:第一個想法是檢查二進制文件的存在,但:
- 這是與平臺相關的,
- 取決於它如何被安裝(建來源,通過軟件包安裝,...),它可能並不總是在同一個地方,儘管它可以通過本地路徑訪問。
我對這個問題的第一意見是「不」,但也許有人有一個想法?
參考:system()
相關:stackoverflow.com/questions/7045879
是否有可能以無副作用的方式運行'tool'(除了打印版本或使用信息)並讓它返回0退出代碼? – SirDarius
@SirDarius我不確定我是否理解你的評論。我認爲是的,我可以,但問題是如果它不存在會發生什麼? – kebs
啊。剛剛發現一個相關的問題(但僅適用於Linux),沒有找到它之前:http://stackoverflow.com/questions/7045879/ – kebs