The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"перенаправление стандартного вывода в переменную"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"перенаправление стандартного вывода в переменную" 
Сообщение от lemegeton Искать по авторуВ закладки(??) on 23-Июл-05, 21:17  (MSK)
Всем привет! Функция system() направляет результат выполнения в стандартный вывод, т.е. на экран. Мне надо вернуть результат выполнения в переменную для манипуляций с ней. Как это сделать? Другими словами мне надо перенаправить стандартный вывод в определенную переменную. Прога на Си.
  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "перенаправление стандартного вывода в переменную" 
Сообщение от chip emailИскать по авторуВ закладки(ok) on 23-Июл-05, 22:21  (MSK)
>Всем привет! Функция system() направляет результат выполнения в стандартный вывод, т.е. на
>экран. Мне надо вернуть результат выполнения в переменную для манипуляций с
>ней. Как это сделать? Другими словами мне надо перенаправить стандартный вывод
>в определенную переменную. Прога на Си.

popen() || (fork() && pipe())


  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "перенаправление стандартного вывода в переменную" 
Сообщение от lemegeton Искать по авторуВ закладки(??) on 24-Июл-05, 08:48  (MSK)
>popen() || (fork() && pipe())

Спасибо. Работает...Еще вопрос -  а при организации канала, например канала на чтение, должен процесс с которым организуется канал, создавать канал на запись?

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "перенаправление стандартного вывода в переменную" 
Сообщение от chip emailИскать по авторуВ закладки(ok) on 24-Июл-05, 12:11  (MSK)
>>popen() || (fork() && pipe())
>
>Спасибо. Работает...Еще вопрос -  а при организации канала, например канала на
>чтение, должен процесс с которым организуется канал, создавать канал на запись?

Не совсем понял до конца вопроса. Но ситуация такова, создается pipe после этого один из процессов закрывает дескриптор на запись (если предполагается что он будет читателем), а другой тогда закрывает дескриптор на чтение. Соотвественно, если первый писатель, то он закрывает на чтение, второй - на запись.


  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "перенаправление стандартного вывода в переменную" 
Сообщение от const Искать по авторуВ закладки(??) on 28-Июл-05, 23:03  (MSK)
>при организации канала, например канала на
>чтение, должен процесс с которым организуется канал, создавать канал на запись?

Должен? Выбора нет :-)
pipe() создаёт трубу не "на чтение" или "на запись", а просто трубу. И отдаёт оба конца тебе.
popen() - обложка для fork() и pipe(), поэтому работает по тому же принципу.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "перенаправление стандартного вывода в переменную" 
Сообщение от Alexander S. Salieff emailИскать по авторуВ закладки on 29-Июл-05, 22:44  (MSK)
>>при организации канала, например канала на
>>чтение, должен процесс с которым организуется канал, создавать канал на запись?
>
>Должен? Выбора нет :-)
>pipe() создаёт трубу не "на чтение" или "на запись", а просто трубу.
>И отдаёт оба конца тебе.
>popen() - обложка для fork() и pipe(), поэтому работает по тому же
>принципу.

Тока есть один неприятный момент, что popen может только писать в процесс или только читать... А вот ежели охота и то и другой, то тока fork и перемапливать stdin stdout или чего там хочется от жизни...

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру