2015-05-22 4 views
0

Я написал программу с использованием C++, которую я вызываю Как закончить запущенную программу в C++

system("C:\xampp\xampp-control.exe");
для запуска панели управления xampp. Когда я запускаю программу после компиляции, она выполняется гладко, за исключением того, что написанная мной программа все еще работает. После запуска панели управления XAMPP я хочу завершить программу. Что можно сделать? Любая помощь очень ценится.

+1

Лучший сценарий - не использовать 'system()' для его запуска. Вместо этого запустите новый процесс, используя любой системный вызов, который делает это без блокировки, а затем просто 'exit()' вашей программы. – mah

+0

Возможно, вы можете использовать 'exit (int status),' если я правильно понимаю вашу проблему. – Javia1492

+0

Неверный инструмент для работы: [системная документация] (http://linux.die.net/man/3/system) и соответствующая цитата * "и возвращается после завершения команды" *. – crashmstr

ответ

1

Вы можете заменить приложение тем, что вызывается с помощью exec.

// Note: this waits for the exectued program to finish 
// before the call to `system()` returns. 
system("C:\xampp\xampp-control.exe"); 

// You can replace the current processes with the one you 
// are starting like this. 
execl("C:\xampp\xampp-control.exe", "xampp-control.exe"); 
// If this returns the applicaion failed to start. 
std::cerr << "Failed to start application\n"; 
exit(1); 
+0

Большое спасибо ... Найдена лучшая альтернатива с 'ShellExecute()' .. :) –

+0

Это не лучшее решение. Но это сработает. –

+0

Не могли бы вы объяснить, почему это не лучшее решение? :) Пожалуйста, не думайте, как будто я дразня. Я новичок на C++. Поэтому мне любопытно узнать, как все здесь работает ... –

Смежные вопросы