![]() |
Здравствуйте и добро от Соединенных Штатов 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 |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
||||
|
Трубопроводы Вопрос
У меня есть вопрос, трубопроводы, я пытаюсь выполнить трубопроводов на мою оболочку и меня возникли некоторые проблемы ... 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 |
| Режимы дисплея | Оценить эту ветку |
|
|