得到一個版本的程序在Windows中,你可以這樣做:我如何在Linux
CSystemInfo info;
this->m_strVersion = info.GetFileVersion(CFileSystemHelper::GetApplicationPath() + _T("/test.exe"));
拿到的版本號。
我如何在Linux上使用C++?
得到一個版本的程序在Windows中,你可以這樣做:我如何在Linux
CSystemInfo info;
this->m_strVersion = info.GetFileVersion(CFileSystemHelper::GetApplicationPath() + _T("/test.exe"));
拿到的版本號。
我如何在Linux上使用C++?
您可能想要檢索當前正在執行的可執行文件的路徑。
在Linux上,您可以使用/proc/
僞文件系統。閱讀proc(5)手冊頁獲取更多信息。
具體來說,你可能想要做像
char myexepath[512];
memset (myexepath, 0, sizeof(myexepath);
readlink ("/proc/self/exe", myexepath, sizeof(myexepath));
(但你真的應該檢查上面運行時錯誤)
如果你只是想顯示程序的版本,你應該有關於它的一個約定。通常接受--version
作爲程序的第一個參數。我們邀請您閱讀Advanced Linux Programming。
感謝您的快速回復 –
Windows採用具有標準API支持的版本資源系統,Linux和UNIX由於各種原因(從遺留到冗餘)而沒有這種高級概念。
最佳選擇是查詢本地打包系統(RPM,APT等),或嘗試使用--version
命令行參數執行,該命令行參數爲recommended GNU standard。上針對samba工具smbget
命令行
實施例RPM查詢:
# rpm -q -f /usr/bin/smbget --queryformat '%{version}\n' 3.0.33
它通常取決於程序。您可以嘗試僅使用「--version」選項來調用它並解析其輸出,但不要求程序在Linux中公開版本號。您也可以嘗試與包管理器進行交互,但也有其中一些。 –
你描述的是一個「窗口事物」。它不存在於* nix中。 –