首先,请原谅我糟糕的英语.....
这是原型
FILE *popen(const char* cmd_string, const char* type);
这是我的问题,这本书说,当调用popen函数时,它将调用exec以获取一个外壳,以执行我们提供给popen的cmd_string,但是我不确定exec将获得哪个外壳,所以任何人都可以给我一个答案?
答案 0 :(得分:2)
/ bin / sh:来自文档:
The command argument is a pointer to a null-terminated string
containing a shell command line. This command is passed to /bin/sh
using the -c flag; interpretation, if any, is performed by the shell.
答案 1 :(得分:0)
让我们尝试看看:
$ cat test.c
#include <stdio.h>
int main() {
FILE *fp;
char var[5];
fp = popen("echo $0", "r");
fgets(var, 5, fp);
printf("%s", var);
}
$ gcc -Wall test.c
$ ./a.out
sh