La función correspondiente a cerrar el fichero en el espacio de usuario (fclose), es el miembro release: de la estructura file operations en la llamada a register_chrdev. En este caso se trata de la función memoria_release. Tiene como argumentos la estructura inode y la estructura file anteriores.
Al liberar un fichero del espacio de usuario, se debe decrementar la cuenta de uso para restablecerla a su valor original. El módulo no se podrá descargar del kernel si dicha cuenta es distinta de cero.
Además de esta operación, cuando se cierra un fichero, se suele liberar memoria y variables relacionadas con la apertura del dispositivo. En este caso, a causa de su simplicidad, no se hacen este tipo de operaciones.
La función memoria_release aparece a continuación:
|   <<memoria release>>=
int memoria_release(struct inode *inode, struct file *filp) { 
  /* Decrementamos la cuenta de uso */
  MOD_DEC_USE_COUNT; 
  /* Exito */
  return 0; 
}
 | 
En la Tabla 6 se puede ver esta nueva función.
| Eventos | Funciones de usuarios | Funciones del kernel | 
| Carga de módulo | insmod | init_module | 
| Abrir dispositivo | fopen | file operations: open | 
| Leer dispositivo | ||
| Escribir dispositivo | ||
| Cerrar dispositivo | fclose | file operations: release | 
| Quitar módulo | rmmod | cleanup_module | 
Tabla 6. Eventos de los drivers y sus funciones asociadas de intercambio entre el espacio de kernel y el espacio de usuario.