Мне нужно выполнить небольшую программу аудита, написанную на C / C ++, в которой перечислены программы / приложения, установленные на машинах под управлением Ubuntu, сначала я мог выполнить задачу, используя "system (" dpkg -l> / tmp / appslist ") system (" nano / tmp / applist "), но чиновник сказал, что не может использовать" систему "и должен ли я использовать ваш собственный C / C ++, но сгенерируйте этот список установленных программ / приложений.
Кто-нибудь знает, как я могу сделать списки этих программ без использования "системы"?
Спасибо!
Я повторяю, что думаю, что это не связанный с человечностью вопрос, но здесь является моим ответом, базирующимся в ссылка popen , я отправил Вас
#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, чтобы иметь разрешение как обычный пользователь)