Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пайпы 
V
    Опции темы
Ak47black
  Дата 30.9.2010, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: нет
Всего: 0



Здравствуйте.
Совсем запутался с этими пайпами.
Имею вот такой пример
Код

#include <fcntl.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <stdio.h>
#include <netinet/in.h>
#include <resolv.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
/*
 *
 */
int main (int argv, char** argc)
{
    int pfildes[2];
    pid_t pid;

    pipe(pfildes);
    pid = fork();
    if (pid == 0) {
          close(pfildes[0]);
          dup2(pfildes[1], 1);
          close(pfildes[1]);
          execlp("ls", "ls", "-l", NULL);
          perror("error executing child process");
          _exit(1);
        }
    else {
          close(pfildes[1]);
          dup2(pfildes[0],0);
          close(pfildes[0]);
          execlp("cut", "cut", "-c", "44-56", NULL);
          perror("error executing child process");       
          exit(1);            
        }
}

Который запустает два приложения.
А как тоже самое сделать с тремя?
Тут ктонибудь есть кто понимает в этом деле?  smile

Добавлено через 3 минуты и 55 секунд
Мне просто нужно написать простую (shell)оболочку для unix. А там должно быть можно укать n-ое количество команд через |
PM MAIL   Вверх
djamshud
Дата 1.10.2010, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 1
Всего: 39



>Который запустает два приложения.

Более того, он запутал уже массу народа на форуме:)

>Мне просто нужно написать простую (shell)оболочку для unix. А там должно быть можно укать n-ое количество команд через |

Нужно: написать нормальный парсер, который выделит и запустит все указанные команды с аргументами (man 2 execv); соединит "соседние" процессы пайпами (man 7 pipe).


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
MAKCim
Дата 1.10.2010, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



Ak47black, 
за готовым приложением в центр помощи

тут задавайте конкретные вопросы



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Ak47black
Дата 1.10.2010, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: нет
Всего: 0



Цитата(djamshud @  1.10.2010,  10:05 Найти цитируемый пост)
соединит "соседние" процессы пайпами (man 7 pipe). 

Мне вот это конкретно непонятно.
Я вот тут выложил свою попытку решения.
Соединяю но получаю ошибки
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0423 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.