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

Это немного некрасиво, но:

 eval "`fc -ln -1`;: "{1..10}\;

Начальный пробел не является строго обязательным, но полезен для предотвращения ввода команды evalв историю, если $HISTCONTROLсодержитignorespace(илиignoreboth).

В качестве альтернативы:

eval "fc -s $((HISTCMD-2)) "{1..10}\;

И:

eval 'history -s '{1..10}';fc -s -2;'
0
12.05.2018, 17:59
1 ответ

ltracesalidas a stderr , no stdout . Peropopen()leerá la tubería que conecta el comando stdout . Así que esto debería ser suficiente para arreglarlo:

FILE *fp = popen("ltrace -p pid 2>&1", "r");

ACTUALIZAR :así mismo, para filtrar directamente el mismo ltracecomando en un shell:

ltrace -p pid 2>&1 | grep someregex
La salida predeterminada de

ltracees stderr , por lo que debe redirigirse a stdout para que sea útil para una canalización.

1
28.01.2020, 02:43

Теги

Похожие вопросы