У меня есть программа, которая должна запускать valgind в другой программе и направлять вывод valgrind в другой файл. Код я использую:valgrind неправильное расположение вывода
char* args[] = {"sudo", //(This is inside a fork)
"valgrind",
"--leak-check=full",
"--show-leak-kinds=definite",
"--errors-for-leak-kinds=definite",
"<path to executable>", //placeholders
"&><path to output file>", //placeholders
"\0"};
execvp("sudo",args);
Проблема я получаю в том, что независимо от того, что я делаю, это не на самом деле прямой выход в любом месте, но терминал.
Я пробовал «&>» и «>» без каких-либо изменений. Я попытался запустить его в терминале с перенаправленным выходом в файл, я также попытался запустить его в eclipse с терминальными аргументами и т. Д. Я не уверен, что еще я могу попробовать.
Кто-нибудь задумывается, почему «&>» не перенаправляет? Я подтвердил, что ввод массива args в терминале (а не как часть программы) действительно работает. Кажется, это просто что-то с программой C++ (возможно, fork?).
перенаправление осуществляется оболочкой не 'execvp'. Также проверьте справочную страницу о том, как закончились аргументы. – Diego