![]() |
дочерний процесс
Задача: Моя программа должна запускать дочерний процесс, а через некоторое(заранее определенное) время прибить его, если он не завершится сам.
Если пойти таким путем: 1. Запустить дочерний процесс и запомнить его id 2. Подождать 3. Если процесс с запомненным id присутствует в системе и текущая прграмма является его родителем, то 3.1 прибить его. Вопрос: не может ли быть, что между шагами 3 и 3.1 дочерний процесс завершится, а в системе запустится какой-то другой процесс с тем же самым id? Если задачу можно сделать как-то по-другому, напишите, пожалуйста. Операционные системы, в которых будет запускаться программа - Linux и Win32 |
Если не освобождать его Handle,
то всегда можно будет проверить статус процесса — выполняется или нет А потом можно и Terminate... Не забыв после этого освободить Handle В MSDN есть все детали... А можно на этом Handle и WaitTimeout сделать... (можно и в отдельном потоке, если не хотите приостанавливать основную программу) P.S. Ваши опасения насчёт ID — верны! P.P.S. А Handle — он Ваш — система его не может отнять... P.P.P.S. Насчёт UNIX — не знаю... |
юзаем CreateProcess + WaitTimeout(или любой другой таймер).
|
А в линукс как такое сделать?
|
Время: 05:34. |
Время: 05:34.
© OSzone.net 2001-