The UNIX and Linux Forums  
Здравствуйте и добро от Соединенных Штатов UNIX и Linux Форумы! Благодарим Вас за посещение и вступления нашей мирового сообщества.

Go Back   В UNIX и Linux Форумы > Топ форумы > Программирования высокого уровня
.
Google unix.com



Программирования высокого уровня Почтовые вопросы о C, C + +, Java, SQL и других языках программирования здесь.

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Вопрос о grep, заготовки и трубы dyrt Shell программирование и сценарии 1 02-28-2008 11:12 PM
Трубопроводы из бывших сценарий миль / ч Shell программирование и сценарии 2 10-11-2007 04:54 PM
Трубопроводы в UNIX simo007 UNIX для чайников Вопросы И Ответы 3 05-23-2007 03:40 AM
трубопровод lnatz Shell программирование и сценарии 1 07-14-2006 03:30 AM
Помощь (Трубопровод Ls, TR, Cut) скан Shell программирование и сценарии 2 02-11-2006 08:40 AM

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 04-25-2008
mtobin1987 mtobin1987 is offline
Зарегистрированный пользователь
  
 

Регистрация: Apr 2008
Сообщений: 2
Трубопроводы Вопрос

У меня есть вопрос, трубопроводы, я пытаюсь выполнить трубопроводов на мою оболочку и меня возникли некоторые проблемы ... esentially Я пытаюсь сделать что-то делать команду | команду | команду.
Я могу получить его на работу штраф, если последняя команда трубы не раздвоенный, но выполняет в корпусе, а затем выход .. но мне она нужна для вилки. Я tryed следующие, но он будет висеть .. какие-либо предложения? У меня ощущение, что-то делать при закрытии / открытии дескрипторов, но я не знаю ... Спасибо.:
Код:
int pipe1[2], pipe2[2];

        pipe(pipe1);//create first pipe
		pid_t PID=fork();
        if(PID==0){
                close(1);
                dup(pipe1[1]);
                close(pipe1[0]);
                close(pipe1[1]);
               	execvp(*argv,argv);
                printf("operation failed");

        } else {
                
                pipe(pipe2);
				pid_t PID2=fork();
                if (PID2==0) {
                        close(0);
                        dup(pipe1[0]);
                        close(1);
                        dup(pipe2[1]);
                        close(pipe1[0]);
                        close(pipe1[1]);
                        close(pipe2[0]);
                        close(pipe2[1]);
                        execvp(*argv2, argv2);
                } else {
                		pid_t PID3=fork();
   				waitpid(PID3,&status,0);<-----Not sure about this
                		if(PID3==0){
                        close(0);
                        dup(pipe2[0]);
                        close(pipe1[0]);
                        close(pipe1[1]);
                        close(pipe2[0]);
                        close(pipe2[1]);
                        execvp(*argv3, argv3);
                		}
                		
                	}
      	  }

Последний раз редактировалось Йогеш Sawant; на 04-25-2008 04:33 AM.. Причина: добавлен код тегов
 

Закладки

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся На




Часовой пояс GMT -4. Текущее время 01:29 PM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
В UNIX и Linux форумы Содержание Copyright © 1993-2009. Все права Reserved.Ad управления по RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0