Yougeshwar Khatri Ответов: 1

Как непрерывно проверять вывод команды ltrace в программе C


Я пытаюсь захватить выходные данные linux ltrace команда с помощью программы на языке Си.

Я пробовал использовать popen (), но это не работает, мне нужно захватывать непрерывный вывод не только один раз.

Ниже приведен мой код:

Пожалуйста, дайте мне ваш совет

Что я уже пробовал:

#include <stdio.h>
#include <stdlib.h>

int main(int carg, char *args[]) {
    FILE *fp = popen("ltrace -p pid", "r");
    char buf[255];
    while (1) {
        if (fgets(buf, 255, fp) != NULL) {
            printf("Captured Text: %s", buf);
        }
    }
    return 0;
}

Afzaal Ahmad Zeeshan

Рассматривалась ли возможность работы с трубами для автоматического захвата входных данных? Я думаю, что это будет полезно в данном случае.

Yougeshwar Khatri

не могли бы вы привести мне какой-нибудь пример, пожалуйста

Afzaal Ahmad Zeeshan

Конечно, видеть это ссылка, чтобы узнать больше о каналах Linux, тоже есть пример.

1 Ответов

Рейтинг:
0

Yougeshwar Khatri

Я получил решение, добавив Это

FILE *fp = popen("ltrace -p pid 2>&1", "r");
Вот ссылка на решение