The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

форумы  помощь  поиск  регистрация  вход/выход  слежка  RSS
"C Перенаправить файл в дочерний процесс обработать tail и"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (C/C++)
Изначальное сообщение [ Отслеживать ]

"C Перенаправить файл в дочерний процесс обработать tail и"  –1 +/
Сообщение от mesmeridze email(ok) on 15-Ноя-16, 08:35 
Добрый день коллеги.
Поставили такую задачу. Нужно из родительского в дочерний процесс передать некий файл, там его пропустить чере more / head / tail кому что нравится. Затем полученный вывод вернуть родителю ну и родитель собственно должен этот текст вывести на экран.
(институтская задача не бейте тапками)

Если я правильно понял использовать нужно fork, в родителе файл можно открыть при помощи fopen и передать дескриптор дочернему процессу. Поскольку как я читал дескриптор будет доступен последнему, то остаётся решить вопрос как это вот всё скормить перечисленным утилитам, а потом весь этот вывод вернуть родителю. Я могу это сделать через system, но чует моё сердце есть не рагульский вариант.

Подскажите пожалуйста как правильно это сделали Вы.
Спасибо

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "C Перенаправить файл в дочерний процесс обработать tail и"  +/
Сообщение от Аноним (??) on 15-Ноя-16, 11:23 
man 2 pipe

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "C Перенаправить файл в дочерний процесс обработать tail и"  –1 +/
Сообщение от mesmeridze email(ok) on 15-Ноя-16, 14:08 
> man 2 pipe

Ага, спасибо. Только вопрос как мне открыть head при помощи fopen какой параметр, w ?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "C Перенаправить файл в дочерний процесс обработать tail и"  +/
Сообщение от Аноним (??) on 15-Ноя-16, 18:03 
>> man 2 pipe
> Ага, спасибо. Только вопрос как мне открыть head при помощи fopen какой
> параметр, w ?

https://github.com/coreutils/coreutils/blob/master/src/head.c

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "C Перенаправить файл в дочерний процесс обработать tail и"  +/
Сообщение от Pahanivo (ok) on 15-Ноя-16, 21:35 
сессией запахло .... :)
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "C Перенаправить файл в дочерний процесс обработать tail и"  +/
Сообщение от ПавелС email(ok) on 18-Ноя-16, 15:09 
>[оверквотинг удален]
> этот текст вывести на экран.
> (институтская задача не бейте тапками)
> Если я правильно понял использовать нужно fork, в родителе файл можно открыть
> при помощи fopen и передать дескриптор дочернему процессу. Поскольку как я
> читал дескриптор будет доступен последнему, то остаётся решить вопрос как это
> вот всё скормить перечисленным утилитам, а потом весь этот вывод вернуть
> родителю. Я могу это сделать через system, но чует моё сердце
> есть не рагульский вариант.
> Подскажите пожалуйста как правильно это сделали Вы.
> Спасибо

Как вернуть текст я не знаю, простейшее родитель должен отпечатать файл на stdout. Остальные команды могут читать типа родитель | tail | head | ..etc. Как замкнуть вывод последнего в конвейере обратно на stdin родителя не знаю, может кто подскажет. Результат родитель может напечатать на stderr онсвободен и отобразится на экране.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема


  Закладки на сайте
  Проследить за страницей
Created 1996-2017 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
Hosting by Ihor