Как запустить файл C ++ в отдельном терминале от другого файла C ++?

Я новичок в Ubuntu и изучал терминал. Я застрял здесь. У меня есть два файла C ++ x.cpp и y.cpp. Я бегу х с первого терминала. Он имеет следующую строку:

system("gnome-terminal");

это открывает новое окно терминала. Далее это выглядит так:

system("g++ y.cpp");
system("./a.out");

но это работает у в том же терминальном окне. Я хочу, чтобы вы запустились во вновь открытом окне терминала. Пожалуйста помоги.

0

Решение

Каждый звонок system() запускает отдельный новый процесс, как дочерний процесс вызывающего. Между процессами нет никакой связи (за исключением того, что они имеют одного и того же родителя). Каждый вызов системы не запускает другую команду в том же контексте, что и предыдущий вызов, как, например, выполнение в командной строке оболочки.

Вы можете начать gnome-terminal с командой для запуска (вместо приглашения оболочки), чтобы вы могли использовать system() чтобы запустить gnome-терминал, который запускает нужные вам команды:

system("gnome-terminal -e 'sh -c \"g++ y.cpp && ./a.out\"'");

Это запустит команду gnome-terminal -e 'sh -c "g++ y.cpp && ./a.out"' (но вам нужно экранировать символы двойной кавычки, чтобы поместить команду в строковый литерал C ++).

Что говорит gnome-terminal запустить снаряд (sh) с командой g++ y.cpp && ./a.out

3

Другие решения


По вопросам рекламы [email protected]