在unix系统中执行

时间:2010-11-10 09:49:22

标签: c

#include<unistd.h>

int main(int argc, char **argv)
{
 int ret;

 ret = execve("/bin/bash", NULL, NULL);

 return 0;

}

我很困惑为什么在execve中传递null值 请帮助.....

2 个答案:

答案 0 :(得分:6)

这些参数对应于程序的参数和环境。通过为两者传递NULL,调用者指示不应该向程序提供任何参数,也不应提供任何环境变量。

答案 1 :(得分:1)

此代码打开新shell ..... 就像执行任何命令时一样,shell会自行复制并执行命令。