Здраструйте, задантие- написать програму на С, которая использует стандартые утилиты Bash(cat, grep, sort). Проблема не работает sort. Ошибка скорее всего в синтаксисе sort, но где і как правильно?
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
//#include <stream>
int main()
{
int status;
int fd1[2], fd2[2], fd3[2], fd4[2], fd5[2], fd6[2], fd7[2];
pipe(fd1); pipe(fd2); pipe(fd3); pipe(fd4);
pipe(fd5); pipe(fd6); pipe(fd7);
pid_t pid1 = fork();
if (pid1!=0)
{
char* command1[3] = {"cat", "log.txt", NULL};
dup2(fd1[1],1);//to
//close(pipe_fd1[1]);
execvp (command1[0],command1);
}
pid_t pid2 = fork();
if (pid2!=0)
{
char* command2[6]={"cut", "-f", "9,7", "-d", " ", NULL};
dup2(fd1[0], 0);//from
close(fd1[0]);//witout this two model
dup2(fd2[1], 1);
close(fd2[1]);//ones two collums, another jnly 10
execvp (command2[0], command2);
}
pid_t pid3 = fork();
if (pid3!=0)
{
char* command3[4]={"/bin/grep", "404" , NULL};
dup2(fd2[0], 0);//from
close(fd2[0]);
dup2(fd3[1], 1);
//close(fd3[1]);
execvp (command3[0], command3);
}
pid_t pid4 = fork();
if (pid4!=0)
{
char* command4[3]={ "sort","1" ,NULL};
dup2(fd3[0], 0);
//dup2(fd4[1], 1);
execvp (command4[0], command4);//command4[0]
}
return 0;
}