У меня проблема с сохранением вывода execvp. Я хочу сохранить вывод (ps -eo pid, fname, state, ppid, gid, sid) в txt-файле.Как сохранить вывод execvp
Это мой код:
#include <unistd.h>
int main(void)
{
char* args[]={"ps","-eo","pid,fname,state,ppid,gid,sid" , ">" , "t.txt"};
execvp(args[0],args);
return 0;
}
Но когда я запускаю его .Это не работает.
* Fork * новый процесс и * труба * для передачи вывода из стандартного вывода в родительский процесс. Есть тысячи примеров этого во всем Интернете, если вы просто ищете немного. –
Кстати, массив аргументов не завершен, вызов 'execvp' приведет к неопределенному поведению, когда он выходит за пределы конца массива, чтобы найти терминатор. –
Возможно, рассмотрите использование [popen (3)] (http://man7.org/linux/man-pages/man3/popen.3.html) или напрямую используйте [proc (5)] (http://man7.org /linux/man-pages/man5/proc.5.html) –