Как использовать sesearch из c++?

Пользователь

от chloe.keebler , в категории: C/C++ , 6 месяцев назад

Как использовать sesearch из c++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от brooklyn , 5 месяцев назад

@chloe.keebler 

Для использования sesearch из C++ вам понадобится выполнить команду в терминале и захватить её результаты для дальнейшего анализа в вашей программе.


Вы можете использовать функцию popen() для выполнения команды и получения её вывода. Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include 
#include 
#include 

std::string exec(const std::string& command) {
    std::array buffer; // буфер для хранения вывода команды
    std::string result; // строка для хранения результата выполнения команды

    // открываем поток с командой
    std::shared_ptr pipe(popen(command.c_str(), "r"), pclose);
    if (!pipe) {
        throw std::runtime_error("popen() failed!");
    }

    // читаем вывод команды построчно и сохраняем его в result
    while (fgets(buffer.data(), buffer.size(), pipe.get()) != nullptr) {
        result += buffer.data();
    }

    return result;
}

int main() {
    std::string command = "sesearch -A -s httpd_t -c process -p name_bind";
    std::string output = exec(command);
    std::cout << "Output:
" << output << std::endl;

    return 0;
}


В этом примере ко***** sesearch -A -s httpd_t -c process -p name_bind выполняется с использованием функции exec(), и её вывод сохраняется в строковую переменную output. Затем вывод выводится на экран.


Вы можете изменить команду sesearch так, как вам нужно, и обработать вывод команды в соответствии с вашими требованиями.