Для моего школьного задания мой профессор хочет, чтобы я сохранил состояние фоновых процессов, которые я сделал с моей программой и сохранил в таблице процессов, где каждая запись процесса находится «в процессе» или «завершена». Чтобы проверить, был ли процесс завершен (прекращен) мой профессор нужно, чтобы я использовал waitpid () сделать это.
Я не знаю, как это можно сделать, потому что, если я перебираю все процессы, которые я создал в фоновом режиме (куча sleep ()), и я проверяю каждый процесс, проверяя, есть ли waitpid () с идентификатором каждого процесса в качестве аргумента для waitpid () и он возвращает что-то отличное от -1 (не ошибка), тогда каждый процесс будет переходить на передний план, когда я действительно просто хочу знать, завершен ли этот процесс или нет.
Оригинальный вопрос профессора:
BACKJOBS: команда, которая печатает список фоновых заданий и их текущий статус. Эта функция похожа на команду jobs при использовании tcsh. Текущее состояние (т.е. выполняется или завершено) каждого задания можно определить с помощью системного вызова waitpid (см. Man waitpid для получения дополнительной информации). Вызовы, сообщающие об ошибке, будут теми, которые уже завершены, поэтому их статус будет «завершен». Вызовы, которые не приводят к ошибке, будут иметь статус «в процессе».
Задача ещё не решена.