[LUG.ro Mix] /dev/null, una cuestión filo sófica!

Nicolás Aimetti lugro-mix@lugro.org.ar
Tue, 14 Feb 2006 15:50:50 +0000


Buenas
> Holas,,, en estas tardes calurosas con 30 grados en mi estudio de
> laburo... no puedo abstraerme de pensar a donde van los mensajes basura
> que yo envío al /dev/null. No puedo imaginar como se puede implementar
> un dispositivo en el cual no se guarda nada...?? Es como un agujero
> negro de información... que no hace más que aumentar la entropía de mis
> computadoras,,, y acelera la su muerte entrópica... ;)
> 
> Alguien tendría una idea de como programar algo parecido en C,,, 

Creo que es de las más sencillas, sino la m'as sencilla de todas...

Cre'as un modulo del kernel, un char device, escrib'is las funciones 
open y close como de costumbre, la funcion write la asocias a una que 
debe lucir m'as o menos as'i:

ssize_t dev_null_write ( struct file *ff, const char *buff,
                          size_t size, loff_t *off)
{
	/*dev null no hace nada, as'i que el cuerpo de la funcion es bastante 
sencillo*/
	return size;
}

struct file_operations dev_null_fopts {
	write: dev_null_write,
	/* las demas, salvo open y close, no vale la pena implementarlas.*/
}

y despues se sigue registrando el modulo, las funciones, asociando el 
mismo al device  y dem'as como aqu'i se indica: 
http://www.xml.com/ldd/chapter/book/ch03.html

Puede que en el kernel 2.6 haya cambiado un poco la cosa, pero no creo 
que sea mucho m'as que eso.


Saludos,
Nicol'as