J'essaie d'obtenir tous les points de montage dans un module du noyau. Voici ce que j'ai trouvé. Il se sépare en raison de la strcat. Est-ce la bonne façon d'obtenir les points de montage? Est-ce que ça va marcher? si oui, comment puis-je réparer le segfault? Si non, comment va-t-on obtenir les points de montage dans un module noyau Linux?Obtenir tous les points de montage dans le module noyau
J'ai essayé cycle the whole namespace looking for mountpoint roots that match mais c'est à partir de 2003 et le noyau a tellement changé qu'il est fondamentalement inutile. Également essayé get filesystem mount point in kernel module mais encore son à partir de 2012 donc il est obsolète.
static int __init misc_init(void)
{
struct path path;
struct dentry *thedentry;
struct dentry *curdentry;
kern_path("/", LOOKUP_FOLLOW, &path);
thedentry = path.dentry;
list_for_each_entry(curdentry, &thedentry->d_subdirs, d_child)
{
kern_path(strncat("/", curdentry->d_name.name, strlen(curdentry->d_name.name)), LOOKUP_FOLLOW, &path);
if (path_is_mountpoint(&path))
{
printk("%s: is a mountpoint", curdentry->d_name.name);
}
else
printk("%s: is not a mountpoint", curdentry->d_name.name);
}
return 0;
}
Avez-vous déjà lu 'man strncat'? Tu seras surpris. –
oui j'ai. J'ai essayé strjoin, strlcat, strncat, strcat. – testfile
... et le 'strlen (curdentry-> d_name.name)),' n'a aucun sens du tout, soit – wildplasser