¿Qué es lo opuesto a 'mknod'?


Estoy aprendiendo a escribir controladores de dispositivos de caracteres desde la Guía de Programación del Módulo del Núcleo , y usé mknod para crear un nodo en /dev para hablar con mi controlador.

Sin embargo, no puedo encontrar ninguna manera obvia de eliminarlo, después de revisar la página de manual y observar que rmnod es un comando inexistente.

¿Cuál es la forma correcta de revertir el efecto de mknod, y eliminar con seguridad el nodo creado en /dev?

Author: merlin2011, 2014-03-18

2 answers

El comando correcto es solo rm :)

Un nodo de dispositivo creado por mknod es solo un archivo que contiene un número mayor y menor de dispositivo. Cuando accedes a ese archivo la primera vez, Linux busca un controlador que anuncie ese mayor/menor y lo carga. Su controlador entonces maneja todas las E / S con ese archivo.

Cuando elimina un nodo de dispositivo, se aplica el comportamiento habitual del archivo Un * x: Linux esperará hasta que no haya más referencias al archivo y luego se eliminará de disco.

Su conductor realmente no nota nada de esto. Linux no descarga automáticamente los módulos. Su conductor simplemente ya no recibirá solicitudes para hacer nada. Pero estará listo en caso de que alguien vuelva a crear el nodo del dispositivo.

 32
Author: 1000 Bites,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-10 19:41:51

Probablemente esté buscando una función en lugar de un comando. unlink() es la respuesta. unlink () eliminará el archivo/archivo especial si ningún proceso tiene el archivo abierto. Si algún proceso tiene el archivo abierto, entonces el archivo permanecerá hasta que se cierre el último descriptor de archivo que hace referencia a él. Leer más aquí: http://man7.org/linux/man-pages/man2/unlink.2.html

 1
Author: Mahantesh Salimath,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-09 19:24:24