Поправка на функцию n-трубыLinux

Ответить
Anonymous
 Поправка на функцию n-трубы

Сообщение Anonymous »

Я пробовал изучать внутреннее устройство Linux в течение месяца и пытался создать n каналов для n+1 функций, но что-то пошло не так, и я не мог понять, что происходит. Итак, я представляю свой код всеобщему вниманию, и мне нужна помощь в этом
int main(int argc, char *argv[])
{
int i = 0,pp[5],j = 0,fd[2];
pipe(fd);
while(argv)
{
if(!strcmp(argv,"|"))
{
argv = '\0';
pp[j++] = i;
}
i++;
}

for(int i = 0;i < j;i++)
{
if(i < j-1)
pid_t pid = fork();
if(pid)
{
int stat;
wait(&stat);
dup(fd[1]);
close(fd[1]);
close(0);
dup(fd[0]);
execvp(argv[pp+1],argv + (pp+1));
}
else
{
p1 = dup(fd[0]);
close(fd[0]);
close(1);
dup(fd[1]);
execvp(argv[pp],argv + pp);
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... e-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»