Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2011, 19:53   #1
alezha
Форумчанин
 
Регистрация: 16.04.2011
Сообщений: 126
Восклицание Дескриптор родительского процесса

Проблема. Программа создает поочередно несколько дочерних процессов. При каждом новом создании кол-во дескрипторов родительского процесса увеличивается. как сделать так, что бы, когда завершаем эти процессы, значение дескриптора родительского процесса было равно первоначальному значению?
alezha вне форума Ответить с цитированием
Старый 28.10.2011, 21:23   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Какая операционная система, для начала?
Abstraction вне форума Ответить с цитированием
Старый 28.10.2011, 22:32   #3
alezha
Форумчанин
 
Регистрация: 16.04.2011
Сообщений: 126
По умолчанию

надо под винду.
alezha вне форума Ответить с цитированием
Старый 03.11.2011, 00:38   #4
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Надо копать WinAPI. Хотя формулировка странная - дескриптор процесса как-то обычно не меняется в течение его жизни.
Нам нужно получать (и обрабатывать) сообщения "дочерний процесс сдох". К сожалению, я даже не в курсе, посылается ли оно родительскому процессу автоматически. Вообще, в Windows единица исполнения - не процесс, а поток.
Возможно, эти ссылки окажутся полезными: раз, два, три.
Abstraction вне форума Ответить с цитированием
Старый 03.11.2011, 00:48   #5
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Что-что увеличивается? ) Дескриптор процесса не меняется на протяжении его работы.

Ну а чтобы узнать о завершении дочернего процесса можно либо делать его хендлу WaitForSingleObject - он просигналит сразу после завершения, либо периодически дергать GetExitCodeProcess - он будет возвращать ошибку, пока процесс работает.
Son Of Pain вне форума Ответить с цитированием
Старый 03.11.2011, 02:11   #6
alezha
Форумчанин
 
Регистрация: 16.04.2011
Сообщений: 126
По умолчанию

если зайти в диспетчер задач и добавить пункт "Дескрипторы" во вкладку "Процессы", там будет показывать кол-во дескрипторов каждого процесса. и вот когда создаешь новый дочерний процесс, значение дескрипторов родителя увеличивается, а когда завершаешь дочерний - не изменяется.
alezha вне форума Ответить с цитированием
Старый 03.11.2011, 04:23   #7
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

А, ну эта цифра показывает количество использованных хендлов. Просто закрывай их сразу после создания дочернего процесса.
Son Of Pain вне форума Ответить с цитированием
Старый 03.11.2011, 15:04   #8
alezha
Форумчанин
 
Регистрация: 16.04.2011
Сообщений: 126
По умолчанию

ты имеешь ввиду функцию CloseHandle(*.hProcess);????
alezha вне форума Ответить с цитированием
Старый 03.11.2011, 16:41   #9
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Да. и hThread тоже.
Son Of Pain вне форума Ответить с цитированием
Старый 03.11.2011, 18:28   #10
alezha
Форумчанин
 
Регистрация: 16.04.2011
Сообщений: 126
По умолчанию

тем не менее на один дескриптор увеличивается. что это может быть?
alezha вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск процесса в потоке, завершение процесса в указааноое время, Дайте совет Человек_Борща Общие вопросы Delphi 3 29.08.2010 12:58
Узнать дескриптор процесса, блокирующего USB Denager Общие вопросы Delphi 3 01.07.2010 16:09
БД +Treeview определить номер родительского раздела Dozent Компоненты Delphi 14 05.04.2010 13:04
обрезка фона родительского элемента Love_silense HTML и CSS 5 14.08.2009 13:01
Получить Handle TEdit'a, зная дескриптор родительского окна Cold_Night Win Api 2 13.02.2009 16:47