如何检查是否已经以编程方式安装了“财富”之类的程序?
这是我的代码:

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");

07-24 09:55