Непонятно, что вы подразумеваете под «терминальным процессом».Вы не можете (легко?) Создать другой процесс, который каким-то образом заставляет пользователя открывать больше терминалов, но вы можете использовать fork(2)
для создания дочернего процесса.
fork
создает другую копию вашего процесса с тем же начальным состоянием, за исключением того, что он возвращает 0 в дочернем процессе и возвращает ненулевой PID в родительском процессе.Таким образом, эскиз будет выглядеть следующим образом:
if (fork())
system("bar");
else
system("foo");
Это приведет к тому, что ваша оригинальная программа породит два процесса, запускающих foo
и bar
.