0
현재 작은 쉘에서 작업 중이며 여러 명령 (예 : "ls | sort")으로 구성된 작업 실행을 구현하려고합니다. 정렬 프로그램에 "잘못된 파일 설명자"가있는 것 같아서 리디렉션에 문제가 있습니다. 첫 번째 명령에 대한여러 명령을 사용하는 쉘 및 작업
: 마지막 명령에 대한
if (pipe(job->tubes[num_comm]) == -1)
{
perror("Erreur création tube");
exit(errno);
}
pid_t pid = fork();
if(pid==0) {
sig->sa_handler=SIG_DFL;
sigaction(SIGINT, sig, NULL);
close(job->tubes[num_comm][0]);
dup2(job->tubes[num_comm][1], 1);
close(job->tubes[num_comm][1]);
execvp(ligne_analysee->commandes[num_comm][0], ligne_analysee->commandes[num_comm]);
}
job->pids[num_comm]=pid;
close(job->tubes[num_comm][0]);
: 당신의 도움에 대한
pid_t pid = fork();
if(pid==0) {
dup2(job->tubes[num_comm-1][1], 0);
close(job->tubes[num_comm-1][1]);
sig->sa_handler=SIG_DFL;
sigaction(SIGINT, sig, NULL);
execvp(ligne_analysee->commandes[num_comm][0], ligne_analysee->commandes[num_comm]);
}
job->pids[num_comm]=pid;
close(job->tubes[num_comm][1]);
감사 여기에 코드입니다!