Dado que UNIX tiene todos esos maravillosos programas similares a filtros (como grep
, sed
, tr
, etc.), ¿cuál es la forma más fácil de escribir uno de esos en C estándar?¿Cómo escribo un programa de filtro en C?
Por filtro, me refiero a un programa que lee la entrada estándar, realiza una cierta manipulación de los datos, y luego lo escribe en la salida estándar. Esto es útil en la construcción de tuberías de comandos, con cada realización de alguna manipulación adicional de los datos, tales como:
grep xyzzy input.file | tr '[A-Z]' '[a-z]' | sed 's/plugh/PLUGH/g'
(cada uno de los |
símbolos de tubería conecta la salida estándar de la orden anterior a la entrada estándar de la a continuación, de ahí la metáfora de la tubería).
Digamos que necesitaba una que convirtiera todos los caracteres en mayúsculas a minúsculas. Y, sí, me di cuenta de esto en particular problema puede ser resuelto con el UNIX:
tr '[A-Z]' '[a-z]'
pero eso es sólo un ejemplo .
Lo que realmente busco es el código fuente C más simple para hacer un filtro de este tipo.
Me estoy perdiendo algo? El 1 de abril fue hace un par de días ... –
Para todas las herramientas que mencionaste, puedes encontrar fácilmente el código fuente. ¿Por qué no echar un vistazo a eso para descubrir cómo se implementan? –
@Michael, no, surgió cuando estaba respondiendo otra pregunta, y me di cuenta de que no había dudas sobre esto. Según los lineamientos (SO destinado a todos los niveles de usuarios y respondiendo sus propias preguntas), pensé que lo pondría. Obviamente, sé cómo hacerlo, pero no reprenderé a la puta, sino que dejaré que otra persona responda (a menos que no lo hagan en un solo día, en cuyo caso, reprenderé al máximo :-) – paxdiablo