Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   дочерний процесс (http://forum.oszone.net/showthread.php?t=53293)

DTF 31-08-2005 07:00 352142

дочерний процесс
 
Задача: Моя программа должна запускать дочерний процесс, а через некоторое(заранее определенное) время прибить его, если он не завершится сам.

Если пойти таким путем:
1. Запустить дочерний процесс и запомнить его id
2. Подождать
3. Если процесс с запомненным id присутствует в системе и текущая прграмма является его родителем, то
3.1 прибить его.

Вопрос: не может ли быть, что между шагами 3 и 3.1 дочерний процесс
завершится, а в системе запустится какой-то другой процесс с тем же самым id?

Если задачу можно сделать как-то по-другому, напишите, пожалуйста.

Операционные системы, в которых будет запускаться программа - Linux и Win32

SergeCpp 31-08-2005 07:31 352143

Если не освобождать его Handle,
то всегда можно будет проверить статус процесса — выполняется или нет

А потом можно и Terminate... Не забыв после этого освободить Handle

В MSDN есть все детали...

А можно на этом Handle и WaitTimeout сделать...
(можно и в отдельном потоке,
если не хотите приостанавливать основную программу)

P.S. Ваши опасения насчёт ID — верны!

P.P.S. А Handle — он Ваш — система его не может отнять...

P.P.P.S. Насчёт UNIX — не знаю...

XCodeR 31-08-2005 10:27 352169

юзаем CreateProcess + WaitTimeout(или любой другой таймер).

DTF 02-09-2005 06:29 352655

А в линукс как такое сделать?


Время: 05:34.

Время: 05:34.
© OSzone.net 2001-