首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在linux中获取程序版本

如何在linux中获取程序版本
EN

Stack Overflow用户
提问于 2012-12-07 02:15:35
回答 2查看 2K关注 0票数 3

在Windows中,您可以执行以下操作:

代码语言:javascript
复制
CSystemInfo info;
this->m_strVersion = info.GetFileVersion( CFileSystemHelper::GetApplicationPath() + _T("/test.exe") );

获取版本号。

我该如何在linux上的C++中做到这一点?

EN

回答 2

Stack Overflow用户

发布于 2012-12-07 02:34:35

Windows采用具有标准API支持的版本资源系统,Linux和UNIX由于从遗留到冗余的各种原因没有这样的高级概念。

最好的选择是查询本地打包系统(RPM、APT等),或者尝试使用recommended GNU standard形式的--version命令行参数执行。

用于Samba工具smbget的命令行上的示例RPM查询

rpm查询格式/usr/bin/smbget -q格式‘%{ -f }\n’3.0.33

票数 3
EN

Stack Overflow用户

发布于 2012-12-07 02:20:17

您可能希望检索当前正在执行的可执行文件的路径。

在Linux上,您可以使用/proc/伪文件系统。有关更多信息,请阅读proc(5)手册页。

具体地说,您可能希望执行以下操作

代码语言:javascript
复制
char myexepath[512];
memset (myexepath, 0, sizeof(myexepath);
readlink ("/proc/self/exe", myexepath, sizeof(myexepath));

(但你真的应该检查上面的运行时错误)

如果你只是想显示一个程序的版本,你应该有一个关于它的约定。通常接受--version作为程序的第一个参数。

我邀请您阅读Advanced Linux Programming

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13749932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档