2016-08-29 2 views
0

Как прервать процесс, запущенный с C++ с помощью вызова popen - как отправить его SIGINT? Вот popen вызов:Как отправить SIGINT в функцию Popen()

FILE* pipe = popen("vlc", "r"); 

Я хотел бы закрыть vlc, когда я хочу с сигналом прерывания.

+2

Аналогичная проблема уже была рассмотрена здесь: http://stackoverflow.com/questions/548063/kill-a-process-started-with-popen – Hayt

+0

Посмотрите на http://stackoverflow.com/questions/548063/ убить-а-процесс стартером-с-POPEN. –

ответ

0

Почему бы не реализовать свой собственный обработчик сигнала и не сделать pclose на открытой трубе? Это должно отправить sigpipe в VLC. popen - действительно плохой способ развить процесс. вы не получаете от него ПИД. Есть много реализаций, которые плавают вокруг, которые делают то же самое, используя fork, и возвращают также PID. Задать вопрос, если вы не можете найти его.

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