我想用C代码创建多个终端进程。与在中一样,我希望在一个终端进程中运行foo,然后在一个单独的终端进程中运行bar。这个是可能的吗?我可以使用system(char *)吗?
发布于 2011-04-12 10:51:28
这听起来像是posix_spawn()的工作。这是一个example。do do not调用system()来启动新进程。
发布于 2011-04-12 10:29:24
不清楚你所说的“终端进程”是什么意思。你不能(很容易?)创建另一个进程,以某种方式使用户打开更多的终端,但您可以使用fork(2)创建子进程。
fork创建具有相同初始状态的进程的另一个副本,除了在子进程中返回0,并在父进程中返回一些非零PID。因此,草图将如下所示:
if (fork())
system("bar");
else
system("foo");这会导致您的原始程序产生两个进程,分别运行foo和bar。
发布于 2011-04-12 10:59:51
如果你真的想变得邪恶,假设你正在运行X,你可以像这样启动xterm:
while(processes to spawn)
{
if(!fork())
execlp("xterm", "-e", "foo"); // or "bar" or "baz" ...
}https://stackoverflow.com/questions/5629696
复制相似问题