![]() |
|
Модераторы: xvr |
![]()
|
|
| pablo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 12.2.2005 Где: Вильнюс, Литва Репутация: нет Всего: 6 |
В Юникс шеле, возможно перенаправить ввод вывод комманд операцией command < file, command > file, command >> file, но при написании собственного шела, возникла проблема с реализацией сего.
как я понимаю после ввода команды надо создать процесс, потом запустить комманду, предварительно отделив её от параметров, но что делать потом ? точнее как сделать чтобы вывод(ввод) делался в(из) файла ? делаю вот так:
-------------------- Первый блин всегда похож на сферу, иногда бывает и куб. |
|||
|
||||
| GrayCardinal |
|
|||
|
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 8 Всего: 58 |
Откроет файл (/dev/null). Закроет дескриптор 0 (stdin) и скопирует на его место дескриптор faylo. Т.е. stdin теперь /dev/null. Все сложнее конечно, но так на пальцах должно работать. С stdout/stderr аналогично. |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 4 Всего: 317 |
в общих словах - забота оболочки (шелла) - превратить командную строку в понятный и правильный ( если возможно ) вид. если ты уже пришел к выводу, что запускать пора, то ты должен запускать дочерние
процессы, с нужными inpu, output, error. { в цифрах - это 1-й, 2-й и 3-й дескрипторы (0,1,2). } твоя задача сводится к тому, чтобы в процессе вызывающем exec*() к моменту вызова дескрипторы 0,1,2 были открытые правильные файлы. тогда, при exec() они передадутся "по наследству". а то что делаешь ты, это надеешься на то, что кто-то уже заменил дескрипторы... пока. P.S. посмотри как это реализуется в тех же tcsh, bash, zsh - благо код доступен и открыт. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 3 Всего: 44 |
воспользуйся поиском, тема не раз подымалась и я не раз отвечал уже
|
|||
|
||||
![]()
|
| Правила форума "С/С++: Программирование под Unix/Linux" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |