Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Программирование
>
C/C++
>
C/C++ Unix
(Модератор:
Вад
) > Тема:
stdin
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: stdin (Прочитано 15372 раз)
0 Пользователей и 1 Гость смотрят эту тему.
McZim
Команда клуба
Offline
Пол:
Я странный
stdin
«
:
03-06-2008 08:23 »
Всем привет. Хочу попытаться реализовать нормальный вывод результатов запроса от sqlplus. Очень часто приходится работать на удаленных серверах по ssh и не всегда есть возможность использовать графику, да и нормальных инструментов GUI для работы с БД Oracle мало или нет вовсе. Поэтому хочу через стандартный ввод вывод парсить результаты селектов от sqlplus. Сейчас читаю из stdin и вот такой вопрос, например прочитал в буфер вот такую строку sqlplus /nolog, мне эту строку обрабатывать не нужно, как мне отдать ее из буфера системе на выполнение?
Записан
The CBO without stats is like a morning without coffee. (c) T.Kyte.
McZim
Команда клуба
Offline
Пол:
Я странный
Re: stdin
«
Ответ #1 :
03-06-2008 09:49 »
ага, спасибо, в этом помогла функция system(const char* command);
Записан
The CBO without stats is like a morning without coffee. (c) T.Kyte.
McZim
Команда клуба
Offline
Пол:
Я странный
Re: stdin
«
Ответ #2 :
03-06-2008 12:50 »
а как бы мне завернуть stdout к себе в буфер?
Записан
The CBO without stats is like a morning without coffee. (c) T.Kyte.
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
Re: stdin
«
Ответ #3 :
03-06-2008 20:12 »
Что ты считаеш буфером? И почему именно через потоки ты это хочеш сделать. В принципе можно привязать поток к файлу.
Записан
Не будите спашяго дракона.
Джаффар (Коша)
RXL
Технический
Администратор
Offline
Пол:
Re: stdin
«
Ответ #4 :
03-06-2008 21:04 »
McZim
, классика жанра:
1. Создается два (или три - для stderr) анонимных pipe/
2. fork().
3. Потом на каждой стороне закрываются "ненужные" дескрипторы.
4. В дочернем потоке закрыть 0, 1 и 2, и сделать dup для труб на эти места. Лишнее закрыть.
5. Потои дочка делает exec() (не system!)
Записан
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
McZim
Команда клуба
Offline
Пол:
Я странный
Re: stdin
«
Ответ #5 :
04-06-2008 06:24 »
Finch
, хорошо, если так то не буфер а массив
Через потоки потому что мне нужно завернуть информацию от программы, которая выдает некий результат в stdout, к себе в массив, произвести некоторые операции и отправить в stdout.
RXL
, ок.
Записан
The CBO without stats is like a morning without coffee. (c) T.Kyte.
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
Re: stdin
«
Ответ #6 :
04-06-2008 19:34 »
Вот описание iostream библиотеки. В частности, надо наверно обратить внимание на streambuf. Правда я с этим классом не работал.
Записан
Не будите спашяго дракона.
Джаффар (Коша)
RXL
Технический
Администратор
Offline
Пол:
Re: stdin
«
Ответ #7 :
04-06-2008 19:36 »
Finch
, где описание?
Записан
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
Re: stdin
«
Ответ #8 :
04-06-2008 19:37 »
Упс. Извиняюсь.
http://www.cplusplus.com/reference/iostream/
Записан
Не будите спашяго дракона.
Джаффар (Коша)
McZim
Команда клуба
Offline
Пол:
Я странный
Re: stdin
«
Ответ #9 :
04-06-2008 20:06 »
Finch
, ну еще не факт что я plus plus задействую
Записан
The CBO without stats is like a morning without coffee. (c) T.Kyte.
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
Re: stdin
«
Ответ #10 :
05-06-2008 21:01 »
McZim
, Я не понимаю, в чем у тебя проблема возникает. У любого потока данных, должно подрузумеваться методы чтения или/и записи данных из/в поток. Лучше покажи код, как ты иницилизируеш поток данных, чтобы можно было от чего нибудь отталкиваться.
Записан
Не будите спашяго дракона.
Джаффар (Коша)
McZim
Команда клуба
Offline
Пол:
Я странный
Re: stdin
«
Ответ #11 :
06-06-2008 09:23 »
Finch
, уже ни в чем все хорошо
Записан
The CBO without stats is like a morning without coffee. (c) T.Kyte.
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Программирование
>
C/C++
>
C/C++ Unix
(Модератор:
Вад
) > Тема:
stdin
Загружается...