我如何在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查询:

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

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

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

具体来说,你可能想要做类似的事情

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

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

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

我邀请您阅读高级Linux编程 。