我需要完成一个用 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 来获得普通用户的权限)