![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 31.10.2009
Сообщений: 44
|
![]()
добрый день. Пишу в данный момент шелл, и никак не могу понять, как выполнять несколько перенаправлений, вроде ls | cat -e | wc -l > test.
Насколько я понимаю, в начале идет следуюшая последовательность действий: fork -> pipe -> dup2; а вот как дальше... В данный момент эта строка в форме двойного массива символов: ls | cat -e | wc -l > test помогите пожалуйста |
![]() |
![]() |
![]() |
#2 |
Unix C++ developer
Форумчанин
Регистрация: 16.04.2007
Сообщений: 651
|
![]()
Если потерпите до вечера, подкину вам исходники "самодельного" рабочего шелла, когда то писал сам, ради интереса
![]() Там поддерживаются перенаправления и каналы. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 328
|
![]()
А если нет - смотрите исходники sh( тот который gnu ), он самый простой из многих
|
![]() |
![]() |
![]() |
#4 | |
Пользователь
Регистрация: 31.10.2009
Сообщений: 44
|
![]() Цитата:
Заранее спасибо Последний раз редактировалось Card1nal; 01.06.2010 в 00:56. |
|
![]() |
![]() |
![]() |
#5 |
Unix C++ developer
Форумчанин
Регистрация: 16.04.2007
Сообщений: 651
|
![]()
Прошу прощения за задержку.
Представляю исходный код простой шелл, можете взять за основу. файл main.c Код:
|
![]() |
![]() |
![]() |
#6 |
Unix C++ developer
Форумчанин
Регистрация: 16.04.2007
Сообщений: 651
|
![]()
файл shell.h
Код:
|
![]() |
![]() |
![]() |
#7 |
Unix C++ developer
Форумчанин
Регистрация: 16.04.2007
Сообщений: 651
|
![]()
файл print_cmd.c
Код:
Код:
Последний раз редактировалось oleg kutkov; 01.06.2010 в 23:29. |
![]() |
![]() |
![]() |
#8 |
Unix C++ developer
Форумчанин
Регистрация: 16.04.2007
Сообщений: 651
|
![]()
файл exec_cmd.c
Код:
Код:
|
![]() |
![]() |
![]() |
#9 |
Unix C++ developer
Форумчанин
Регистрация: 16.04.2007
Сообщений: 651
|
![]()
Понимаю, что не идеал, писалось когда-то давно, чисто для себя.
Надеюсь будет полезно ![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как содать шелл ? | ScorpioN_T | Помощь студентам | 3 | 27.10.2008 15:47 |