Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > jobs list


Автор: Ak47black 22.9.2010, 09:09
Здравствуйте.
Подскажите пожалуйста кто что можете.
Мне нужно сделать программу оболочку для UNIX.
В которой должно быть реализована
Цитата

Фоновая обработка (background tasks)
Цитата

$ sleep 2 & sleep 3 & sleep 1 &

В фон можно "послать" больше одного процесса
Реализовать внутреннюю команду jobs, которая покажет все процессы работающие в фоне.
Не должны появиться процессы "зомби"
На выбор реализовать - отсылку рабочего процесса в фон или возврат в последний запущенный фоновый процесс.

Никак немогу найти примеров или хорошего описания с какими функциями мне нужно работать и как это всё дело реализовать?

Добавлено через 4 минуты и 2 секунды
Можно например запускать процессы в дочерних процессах созданных при помощи fork с функцией execlp. И потом записывать их pid в массив.
Но будет-ли это правильным решением?
И как быть с пунктом
Цитата

На выбор реализовать - отсылку рабочего процесса в фон или возврат в последний запущенный фоновый процесс.

?

Автор: djamshud 22.9.2010, 10:47
Ak47black, это будет правильным решением. А вот, что с тем пунктом, фиг знает. Можно посмотреть исходник bash, он позволяет это делать. Исходники у него довольно просты.

Автор: Void 22.9.2010, 11:27
Почитай про sessions, process groups и controlling terminal.
Документация к glibc в разделе http://www.gnu.org/software/libc/manual/html_node/Job-Control.html#Job-Control содержит примеры реализации функций управления заданиями.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)