假设我有一个我编写的应用程序,它依赖于安装在我的机器上的externat应用程序上的某些任务(让我们称之为“工具”)。在我的程序中,我把它称为system("tool myarguments");
,工作正常。检测程序是否安装在机器上
现在,我想分发我的应用程序。当然,最终用户可能没有在他的机器上安装“工具”,所以我希望我的应用程序检查这一点,并为用户打印一条消息。所以我的问题是:
是否有一种便携的方式来检查机器上是否存在应用程序?(假设我们知道它的名字并且它可以通过机器的外壳访问)。
更多信息:第一个想法是检查二进制文件的存在,但:
- 这是与平台相关的,
- 取决于它如何被安装(建来源,通过软件包安装,...),它可能并不总是在同一个地方,尽管它可以通过本地路径访问。
我对这个问题的第一意见是“不”,但也许有人有一个想法?
参考:system()
相关:stackoverflow.com/questions/7045879
是否有可能以无副作用的方式运行'tool'(除了打印版本或使用信息)并让它返回0退出代码? – SirDarius
@SirDarius我不确定我是否理解你的评论。我认为是的,我可以,但问题是如果它不存在会发生什么? – kebs
啊。刚刚发现一个相关的问题(但仅适用于Linux),没有找到它之前:http://stackoverflow.com/questions/7045879/ – kebs