Nastya19kiss
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Всем доброго времени суток. Обращаюсь к вам с вопросиком. Передо мной стоит задача написать код, который: 1. Создавай процесс 2. организовывал между нами pipe 3. Передавал информацию от родительского процесса дочернему. Все хорошо, если бы не одно НО...Необходимо использовать ключи: -i-ввод информации в файл (родителем). Если ключ не указан то стандартный ввод с клавиатуры -o-вывод информации в выходной файл дочерним процессом -r-перенаправление потока ошибок в прежде созданный текстовый файл (допустим list.txt) ключи задаются при запуске программы, т.е. пример ./a.out -i inputfile-здесь используется входной с файл с информацией для передачи дочернему процессу Начала писать код: #include.... ........ int main(int argc, char *argv[]){ int input, output,pid int fd[2] input=0; output=1; for (i=1;i<argc;i++){ if (strcmp(argv[i],"-i")!=0){ i++; input=open(argv[i],O_RDONLY); } if (strcmp(argv[i],"-o")!=0){ i++; unmask(0644); output=open(argv[i],J_WRONLY|J_TRUNC|O_SYNC|O_CREAT,0644); } if (strcmp(argv[i],"-r")!=0) { fd1=open(log.txt,O_WRONLY,1); dup2(fd1,2); } вот первая часть готова, в ней я проверяю введенный ключ. Я так полагаю что дальше я создаю pipe, создаю процесс pid=fork и проверяю если pid>0, то что дальше делать????У меня есть переменные input и output нужно их как то использовать в зависимости от того дочернийй или родительский это процесс ПОМОГИТЕ реализовать этот дальнейший код |