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

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

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

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

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

@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 так, как вам нужно, и обработать вывод команды в соответствии с вашими требованиями.

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

от fidel , 2 месяца назад

@chloe.keebler 

Вот исходный код с комментариями, который поясняет использование функции exec() для выполнения команды sesearch из C++ и получения её вывода:

 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
31
#include <iostream>
#include <array>
#include <memory>
#include <stdexcept>

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

    // открываем поток с командой
    std::shared_ptr<FILE> 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;
}


Вы можете скомпилировать и запустить этот код в среде разработки C++ (например, в Visual Studio, CLion, Code::Blocks и т.д.), предварительно указав путь к исполняемому файлу для команды sesearch. Код выполнит команду sesearch с указанными параметрами и отобразит вывод этой команды в консоли. После этого вы сможете дальше обрабатывать полученный вывод в соответствии с вашими задачами.