2015-02-12 3 views
0

Я пишу программу в C на Linux-машине, и мне нужно получить информацию о дочернем процессе. Я пытаюсь использовать getrusage(), но, похоже, не может получить ценную информацию. Есть ли способ получить статистику использования (и любую другую информацию) дочернего процесса из родительского процесса с учетом идентификатора процесса дочернего процесса?Получение информации о дочернем процессе в C

ответ

1

Обратите внимание, что в определении POSIX getrusage() четко указано, что вы можете получить информацию только о дочерних процессах, которые были завершены, а не для продолжающихся дочерних процессов. Существует также предостережение, что вы должны уделять внимание умирающим детям; если вы игнорируете сигнал SIGCHLD, вы не получите данные от getrusage().

Если вам нужна информация о все еще работающих процессах, вам необходимо будет хранить файловую систему /proc для информации для соответствующих детей; вероятно, нет другого способа сделать это.

0

Вы можете использовать IPC для связи между вашими процессами. В противном случае, если вам нужна только информация после окончания срока действия ребенка, вы можете использовать вызов waitpid().

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