I’m trying to write a C program that grabs command output and then i’ll be passing that to another program.
I’m having an issue, I cant work out how to get the command output and store it. Below is a sample of what I have
if(fork() == 0){
execl("/bin/ls", "ls", "-1", (char *)0);
/* do something with the output here */
}
else{
//*other stuff goes here*
}
so basically im wondering if there is any way i can get the output from the "execl" and pass it to some thing else (e.g. via storing it in some kind of buffer).
Suggestions would be great.
You have to create a pipe from the parent process to the child, using
pipe().Then you must redirect
standard ouput(STDOUT_FILENO) anderror output(STDERR_FILENO) usingdupordup2to the pipe, and in the parent process, read from the pipe.It should work.