Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Блокирующий запуск


Автор: Rickert 4.5.2009, 10:53
Какой командой можно стартануть произвольный скрипт ("/usr/local/app/my -g" - например), так чтобы программа дождалась пока он выполнится и продолжила работу только после этого.

Автор: hente 4.5.2009, 11:01
Смотря на чом скрипт... При работе с потоками или с процессами можно использовать симафоры.

Автор: Rickert 4.5.2009, 11:26
Не обязательно скрипт. Пусть будет приложение - без разницы.

Автор: Rickert 4.5.2009, 11:47
Вроде system() так делает. Но он у меня падает с "segmentation fault". При этом, если пускать тоже приложение напрямую, руками - всё нормально.
Этот "segmentation fault" вываливается в стандартный поток вывода, при этом основное приложение, в котором был вызов через system() - продолжает работать.
Запускаю падающее приложение с параметром (без параметра - нормально отрабатывает).

Автор: xvr 4.5.2009, 12:02
Цитата(Rickert @ 4.5.2009,  11:47)
Вроде system() так делает. Но он у меня падает с "segmentation fault". При этом, если пускать тоже приложение напрямую, руками - всё нормально.
Этот "segmentation fault" вываливается в стандартный поток вывода, при этом основное приложение, в котором был вызов через system() - продолжает работать.

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

Автор: Rickert 4.5.2009, 13:15
Всем спасибо, вопрос решён. Были проблемы в приложении.
solved smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)