从C启动一个新的shell

时间:2012-12-15 01:05:48

标签: c shell

如何从C启动新的非交互式shell进程?

目前我有以下内容:

system(cmdStr);
//system("/bin/sh -c");

cmdStr是我想要执行的命令。我在下面引用了shell进程...但是如何将cmdStr附加到它?如何让它启动新流程?

1 个答案:

答案 0 :(得分:1)

如果您不想连接字符串,可以执行以下操作:

if (fork())
{
    execl("/bin/sh", "sh", "-c", cmdStr, (char *) NULL);
    exit(EXIT_FAILURE);
}

这是system基本上做的。

否则,要连接字符串,您应该查看来自strcat的标准函数strncatstring.h