пропустил семинар терь разобраться не могу(
помогите плз если не сложно
суть вот в чем
необходимо запустить 2 заданные команды конвейером
команды поступают как аргументы майна
вот что написал
case 'k':
if( argc!=4 )
{
printf("wrong parameters");
exit(1);
}
pipe(tr);
p=fork();
if(p==0)
{
dup2(tr[1],1);
close(tr[0]);
close(tr[1]);
execlp(argv[1],argv[1],NULL);
perror("exec");
exit(2);}
n=fork();
if(n==0){
dup2(tr[0],0);
close(tr[0]);
close(tr[1]);
execlp(argv[2], argv[2], NULL);
perror("exec");
exit(2);
}
wait(NULL);
wait(NULL);
break;
вот
проблема в том что я не очень догоняю как бы его проверить - какими командами тестить?
да и вообще не написал ли я охинею какуюнибудь?
запуск команд конвейером
Модератор: Модераторы разделов
-
nesk
- Сообщения: 2268
- Статус: Линукссаксовец
- ОС: MS Windows XP Home SP3
Re: запуск команд конвейером
похоже на правду
протесть например с помощью ls и wc
неплохо бы еще закрыть дескрипторы канала в основной программе!!
а то вторая команда имеет все шансы не завершится
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.
0xDEFEC8ED
0xDEFEC8ED