如何在启动前查询mosquitto版本以生成适配的运行配置文件
无需启动mosquitto服务判断版本的可靠方法
方案1:调用版本查询参数(最推荐)
直接通过程序调用执行mosquitto -v或mosquitto --version命令即可,该命令只会在标准输出打印版本信息后立即退出,不会启动MQTT服务进程,完全满足你不需要先启动服务的要求。
输出样例如下:
mosquitto version 2.0.18 running on Windows
你只需要从输出中提取出版本号数值段,和2.0做对比即可判断版本是否高于2.0。该参数对所有1.x、2.x版本的mosquitto都通用,兼容性极强。
方案2:直接读取二进制文件提取版本号
如果不想启动任何子进程,也可以直接读取mosquitto.exe的二进制文件内容,搜索可打印字符串中mosquitto version后缀的内容即可,所有版本的mosquitto都会在二进制文件中硬编码自身版本号字符串,不需要运行就能直接提取。
注:官方发布的Windows版mosquitto默认没有嵌入PE文件的版本资源,所以
GetFileVersionInfo接口无法读取到版本属于正常情况,上述两种方案都可以避开这个问题。
内容的提问来源于stack exchange,提问作者Soeren Zimmermann
相关产品推荐
相关产品推荐

