I have problem with saving the execvp output.I want to save the output of (ps -eo pid,fname,state,ppid,gid,sid) in txt file .
This is my code :
#include <unistd.h>
int main(void)
{
char* args[]={"ps","-eo","pid,fname,state,ppid,gid,sid" , ">" , "t.txt"};
execvp(args[0],args);
return 0;
}
But when i run it .It doesnt work .
">" (stream redirection) is supported by shell, so here you actually need run shell with arguments of ps stuff.
Popen is just a way that redirect stream in a more controlled way.
Since you're wiping out your process by directly calling
execvp
, you could simply redirect the output to your file: