簡體   English   中英

我如何在linux中獲得程序版本

[英]how I get version of a program in linux

在Windows中,您可以:

CSystemInfo info;
this->m_strVersion = info.GetFileVersion( CFileSystemHelper::GetApplicationPath() + _T("/test.exe") );

獲取版本號。

我如何在Linux上用C ++做呢?

Windows采用具有標准API支持的版本資源系統,Linux和UNIX由於遺留系統和冗余等各種原因而沒有這樣的高級概念。

最佳選擇是查詢本地打包系統(RPM,APT等),或嘗試使用--version命令行參數執行,這是推薦的GNU標准

在Samba工具smbget命令行上查詢RPM smbget

 # rpm -q -f /usr/bin/smbget --queryformat '%{version}\\n' 3.0.33 

您可能想要檢索當前正在執行的可執行文件的路徑。

在Linux上,您可以使用/proc/ pseudo-file系統。 閱讀proc(5)手冊頁了解更多信息。

具體來說,你可能想要做類似的事情

char myexepath[512];
memset (myexepath, 0, sizeof(myexepath);
readlink ("/proc/self/exe", myexepath, sizeof(myexepath));

(但你真的應該檢查上面的運行時錯誤)

如果您只是想顯示程序的版本,那么您應該有一個約定。 通常接受--version作為程序的第一個參數。

我邀請您閱讀高級Linux編程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM