Программа не завершается после выполнения - C (СИ)
Формулировка задачи:
программа выводит определённые строки текстового файла на экран, сортируя их.
всё работает отлично, но программа не завершает выполнение, пока пользователь не нажмёт Enter, а почему-то ожидает ввода.
подскажите пожалуйста, в чём ошибка. Нужно, чтобы программа выводила строки и выходила.
программируем в putty.
спасибо)
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <signal.h> int main(void) { int fd[2], fd2[2], pid, pid2; int file = open("text.txt", O_RDONLY); pipe( fd ); pipe( fd2 ); dup2( file, fileno(stdin) ); close( file ); printf("\n"); if ((pid = fork()) == 0) { dup2( fd2[0], fileno( stdin ) ); close( fd2[0] ); close( fd2[1] ); execl( "/usr/bin/tail", "tail", NULL ); } else if ((pid2 = fork()) == 0) { dup2( fd[0], fileno( stdin) ); dup2( fd2[1], fileno( stdout ) ); close( fd[0] ); close( fd[1] ); close( fd2[0] ); close( fd2[1] ); execl( "/usr/bin/head", "head", "-215", NULL ); } else if (pid > 0 & pid2 > 0) { dup2( fd[1], fileno( stdout ) ); close( fd[0] ); close( fd[1] ); execl( "/usr/bin/sort", "sort", "-u", NULL ); } else { exit(0); } return(0); }
Решение задачи: «Программа не завершается после выполнения»
textual
Листинг программы
(pid > 0 & pid2 > 0)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д