Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [UNIX] Работа с оболочкой


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

Цель - продемонстрировать возможность работы с UNIX процессами.
Нужно написать на С языке несложную интерактивную оболочку. Эта программа как и обычная оболочка, должна принимать из командной строки команды и их обрабатывать. Команда exit завершает работу. Так-же работа завершается получив EOF (включая Ctrl+D от клавиатуры).
Выберите и реализуйте два из трёх механизмов оболочки:
Цитата

Конвейеры (pipes)
Цитата

$ ls -l | cut -c 44-56 | grep Feb

Должна быть возможность в одной команде использовать больше одно конвейера.
Все участвующие в конвейере процессы должны быть созданы в начале выполнения, а данные (stdin и stdout) переданы сразу.
Предвидеть ситуацию, что команды в середине конвейера не могут быть выполнены (например команды существует или не возвращается никаких команд в stdout поток) 
Возврашатся в командную строку только тогда, когда работу завершили все процессы конвейера.

Цитата

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

$ sleep 2 & sleep 3 & sleep 1 &

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

....

Я колеблюсь между толи мне нужно написать программу на C языке и скомпилировать, толи мне нужно в bash написать C подобный скрипт.
Возможно Вы сможете из контекста понять что-же мне именно нужно сделать?
Может кто-нибудь знает где можно взглянуть на примеры реализации?

Автор: Ak47black 17.9.2010, 11:47
Совсем никак нераспозноваемый пример?  smile 

Автор: Sartorius 17.9.2010, 13:54
Написано "на С". Отдавай строчки в system() и жди exit.  smile 
Хотя если делать то что имелось в виду, а не то что записано. То ты сам должен запускать процессы, прицеплять к ним пайпы и т.д. 

Автор: Ak47black 17.9.2010, 17:00
А как это?  smile 
Можно немного по подробней. Что-то я вообще не понимаю что делать 

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