如何从C启动新的非交互式shell进程?
目前我有以下内容:
system(cmdStr);
//system("/bin/sh -c");
cmdStr是我想要执行的命令。我在下面引用了shell进程...但是如何将cmdStr附加到它?如何让它启动新流程?
答案 0 :(得分:1)
如果您不想连接字符串,可以执行以下操作:
if (fork())
{
execl("/bin/sh", "sh", "-c", cmdStr, (char *) NULL);
exit(EXIT_FAILURE);
}
这是system
基本上做的。
否则,要连接字符串,您应该查看来自strcat
的标准函数strncat
和string.h
。