使用 C/C++ 列出已安装的程序

使用 C/C++ 列出已安装的程序

我需要完成一个用 C/C++ 编写的简短的审计程序,它列出运行 Ubuntu 的机器上安装的程序/应用程序,起初我可以使用“系统(“dpkg -l>/tmp/appslist”)系统(“nano/tmp/applist”)完成任务,但官方说不能使用“系统”,我应该使用自己的 C/C++ 来生成这个已安装的程序/应用程序列表。

有人知道我如何在不使用“系统”的情况下制作这个程序列表吗?

谢谢你!

答案1

我再说一遍,我认为这不是一个与 ubuntu 相关的问题,但这是我的答案弹出链接我发给了你

#include <iostream>
#include <stdio.h>

using namespace std;

int main() {
    FILE *in;
    char buff[512];

    if(!(in = popen("dpkg -l > ~/appslist", "r"))){
        return 1;
    }
    pclose(in);

    if(!(in = popen("cat ~/appslist", "r"))){
        return 1;
    }

    while(fgets(buff, sizeof(buff), in)!=NULL){
        cout << buff;
    }
    pclose(in);

    return 0;
}

(我使用路径 ~/appslist 来获得普通用户的权限)

相关内容