如何检查是否已经以编程方式安装了“财富”之类的程序?
这是我的代码:
if(choice==1)
{
cout<<"Need to Install program first? [y/n]: ?"<<endl;
cin>>yn;
if(yn=='y' || yn=='Y')
{
cout<<"Installing..."<<endl;
cout<<"Enter password if asks:"<<endl;
system(" sleep 2");
system("sudo apt-get install fortune");
}
我已经尝试过了,但是无法获得想要的东西。
dpkg-query -1W fortune 2>&1 | read line ; do echo $line | say ; done
更新:我已经解决了很久了,感谢@John Zwinck
最佳答案
如果您想知道是否安装了类似fortune
的程序,则只需检查它是否存在!
if (access("/usr/bin/fortune", R_OK | X_OK) == 0)
printf("we have good fortune\n");
如果您的程序应该在
$PATH
中的某个位置,但是您不知道在哪里,则可以尝试运行该程序:if (system("fortune --help") != -1)
printf("we have good fortune\n");