system() output to a char*

2019-07-11 21:43发布

问题:

int system(const char *)

How can I send output of this command (lets say the command is "pwd") to a char*? Its returning an int but I want the results of the command to be sent to a char*.

回答1:

You can pipe the output of the command directly to a file by using "pwd > tempfile" as command.
Another way is to use popen

FILE *output = popen("pwd", "r");

That will give you a file pointer where you can read the output from.



回答2:

system("pwd > file");

system() uses "/bin/sh -c" under Linux so it can do anything a shell command line can do.



标签: c file system