Red de conocimiento informático - Aprendizaje de código fuente - Reescribiendo el controlador LED sin implementar open, ¿qué función se llama cuando open(nombre de archivo, O_RDWR) abre el dispositivo en la aplicación?

Reescribiendo el controlador LED sin implementar open, ¿qué función se llama cuando open(nombre de archivo, O_RDWR) abre el dispositivo en la aplicación?

Si no se implementa la apertura, el controlador abrirá siempre correctamente el dispositivo de forma predeterminada. Si se abre correctamente, open devolverá 0.

Si la función open no está definida, el kernel la omitirá. Pero otros pasos siguen siendo los mismos.

Código clave: __dentry_open function

...

if (abierto) {

error = open(inode, f);

if (error)

goto cleanup_all;

}

...

Por lo tanto, sys_open llama Se procederá como de costumbre. Si define open, llamará a la open que escribió, si no define open, omitirá este paso. No hay duda de qué función llamar. Específicamente, recomendamos que los usuarios vean el proceso abierto del controlador de Linux. Sólo comprensión personal sin mucha investigación sobre el conductor. Espero que puedas ayudar a LZ, puedes seguir ~