Как написать программу-фильтр на C?

Поскольку в UNIX есть все эти замечательные фильтроподобные программы (такие как grep, sed, trи так далее), как проще всего написать один из них на стандартном C?

Под фильтром я подразумеваю программу, которая читает стандартный ввод, выполняет некоторые манипуляции с данными, а затем записывает их в стандартный вывод.Это полезно при построении конвейеров команд, каждая из которых выполняет некоторые дополнительные манипуляции с данными, например:

grep xyzzy input.file | tr '[A-Z]' '[a-z]' | sed 's/plugh/PLUGH/g'

(каждый из символов канала |соединяет стандартный вывод предыдущей команды со стандартным вводом следующего, отсюда и метафора конвейера).

Допустим, мне нужен код, преобразующий все символы верхнего регистра в нижний регистр. И да, я понимаю, что эта конкретнаяпроблема может быть решена с помощью UNIX:

tr '[A-Z]' '[a-z]'

но это просто пример.

На самом деле мне нужен простейший стандартный исходный код C для реализации такого фильтра.

9
задан paxdiablo 4 April 2012 в 00:44
поделиться