Lista de programas instalados usando C / C ++ [closed]

2

Eu preciso completar um pequeno programa de auditoria escrito em C / C ++, que lista os programas / aplicativos instalados em máquinas rodando o Ubuntu, no começo eu poderia realizar a tarefa usando "system (" dpkg -l > / tmp / appslist ") system (" nano / tmp / applist "), mas o funcionário disse que não pode usar o" sistema "e devo usar seu próprio C / C ++ mas gerar essa lista de programas / aplicativos instalados.

Alguém tem alguma idéia de como eu posso fazer as listagens deste programa sem usar "sistema"?

Obrigado!

    
por Biff Tannen 19.11.2015 / 09:58

1 resposta

1

Repito que não é uma questão real do Ubuntu, mas aqui está a minha resposta com base no link popen Eu te enviei

#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;
}

(usei o caminho ~ / appslist para ter permissão como usuário normal)

    
por gentooza 19.11.2015 / 12:17