.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2012 Michael Kerrisk .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH DELETE_MODULE 2 "15 septembre 2017" Linux "Manuel du programmeur Linux" .SH NOM delete_module \-\ Décharger un module de noyau .SH SYNOPSIS .nf \fBint delete_module(const char *\fP\fIname\fP\fB, int \fP\fIflags\fP\fB);\fP .fi .PP \fIRemarque\fP\ : cet appel système n'est pas déclaré par les en\-têtes de la glibc\ ; consultez la section \fBNOTES\fP. .SH DESCRIPTION L'appel système \fBdelete_module\fP() essaye de supprimer une entrée de module chargeable inutilisée identifiée par \fIname\fP. Si le module à une fonction \fIexit\fP, alors cette fonction est exécutée avant de décharger le module. L'argument \fIflags\fP est utilisé pour modifier le comportement de l'appel système, conformément à la description ci\-dessous. Cet appel système nécessite des droits. .PP La suppression de module est tentée d'après les règles suivantes. .IP 1. 4 Si d'autres modules chargés dépendent de (c'est\-à\-dire font référence aux symboles définis dans) ce module, alors l'appel échoue. .IP 2. Sinon, si le nombre de références pour ce module (c'est\-à\-dire le nombre de processus utilisant actuellement ce module) est nul, alors le module est immédiatement déchargé. .IP 3. .\" O_TRUNC == KMOD_REMOVE_FORCE in kmod library .\" O_NONBLOCK == KMOD_REMOVE_NOWAIT in kmod library Si un module a un nombre de références non nul, alors le comportement dépend des bits définis dans \fIflags\fP. En utilisation normale (consultez \fBNOTES\fP), l'attribut \fBO_NONBLOCK\fP est toujours indiqué, et l'attribut \fBO_TRUNC\fP pourrait être aussi indiqué. .IP Les diverses combinaisons de \fIflags\fP ont les effets suivants. .RS 4 .TP \fBflags == O_NONBLOCK\fP L'appel se termine immédiatement, avec une erreur. .TP \fBflags == (O_NONBLOCK | O_TRUNC)\fP Le module est déchargé immédiatement, quelque soit le nombre de références. .TP \fB(flags & O_NONBLOCK) == 0\fP Si \fIflags\fP n'indique pas \fBO_NONBLOCK\fP, les étapes suivantes se succèdent\ : .RS .IP * 3 le module est marqué de telle sorte qu'aucune nouvelle référence n'est permise\ ; .IP * si le nombre de références du module est non nul, l'appelant est placé en état de sommeil non interruptible (\fBTASK_UNINTERRUPTIBLE\fP) jusqu'à ce que le nombre de références soit nul, à ce moment l'appel est débloqué\ ; .IP * le module est déchargé normalement .RE .RE .PP L'attribut \fBO_TRUNC\fP a un effet supplémentaire sur les règles décrites précédemment. Par défaut, si un module a une fonction \fIinit\fP mais pas de fonction \fIexit\fP, essayer de supprimer ce module échouera. Cependant, si \fBO_TRUNC\fP a été indiqué, cette condition est contournée. .PP Utiliser l'attribut \fBO_TRUNC\fP est dangereux. Si le noyau n'a pas été construit avec \fBCONFIG_MODULE_FORCE_UNLOAD\fP, cet attribut est ignoré silencieusement (normalement, \fBCONFIG_MODULE_FORCE_UNLOAD\fP est activé). Utiliser cet attribut corrompt le noyau (TAINT_FORCED_RMMOD). .SH "VALEUR RENVOYÉE" En cas de succès, \fB0\fP est renvoyé. en cas d'échec, \fB\-1\fP est renvoyé et \fIerrno\fP se remplit en conséquence. .SH ERREURS .TP \fBEBUSY\fP Le module n'est pas «\ actif\ » (c'est\-à\-dire qu'il est encore en cours d'initialisation ou déjà marqué pour la suppression), ou le module a une fonction \fIinit\fP mais pas de fonction \fIexit\fP, et \fBO_TRUNC\fP n'a pas été indiqué dans \fIflags\fP. .TP \fBEFAULT\fP \fIname\fP fait référence à un emplacement en dehors de l'espace d'adressage accessible du processus. .TP \fBENOENT\fP Il n'existe aucun module de ce nom. .TP \fBEPERM\fP L'appelant n'avait pas les droits (n'avait pas la capacité \fBCAP_SYS_MODULE\fP), ou le déchargement de module est désactivé (consultez \fI/proc/sys/kernel/modules_disabled\fP dans \fBproc\fP(5)). .TP \fBEWOULDBLOCK\fP D'autres modules dépendent de ce module, ou \fBO_NONBLOCK\fP a été indiqué dans \fIflags\fP, mais le nombre de références est non nul et \fBO_TRUNC\fP n'a pas été indiqué dans \fIflags\fP. .SH CONFORMITÉ \fBdelete_module\fP() est spécifique à Linux. .SH NOTES L'appel système \fBdelete_module\fP() n'est pas pris en charge par la glibc. Il n'est pas déclaré dans les en\-têtes de la glibc mais, par un caprice de l'histoire, les versions de glibc antérieures à\ 2.23 fournissaient une interface binaire pour cet appel système. Ainsi, avant glibc\ 2.23, il suffit de déclarer manuellement l'interface dans votre code pour utiliser cet appel système. Sinon, vous pouvez l'invoquer en utilisant \fBsyscall\fP(2). .PP Le sommeil non interruptible qui peut arriver si \fBO_NONBLOCK\fP est omis de \fIflags\fP est considéré indésirable, parce que le processus dormant est laissé dans un état non tuable. Avec Linux\ 3.7, indiquer \fBO_NONBLOCK\fP est facultatif, mais à l'avenir, ce sera probablement obligatoire. .SS "Linux 2.4 et antérieurs" Dans Linux\ 2.4 et antérieurs, l'appel système ne prend qu'un argument\ : .PP \fB int delete_module(const char *\fP\fIname\fP\fB);\fP .PP Si \fIname\fP est NULL, tous les modules non utilisés marqués à nettoyer automatiquement sont supprimés. .PP De plus amples précisions sur les différences de comportement de \fBdelete_module\fP() dans Linux\ 2.4 et antérieurs ne sont \fIpas\fP actuellement expliquées dans cette page de manuel. .SH "VOIR AUSSI" \fBcreate_module\fP(2), \fBinit_module\fP(2), \fBquery_module\fP(2), \fBlsmod\fP(8), \fBmodprobe\fP(8), \fBrmmod\fP(8) .SH COLOPHON Cette page fait partie de la publication\ 5.10 du projet \fIman\-pages\fP Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse \%https://www.kernel.org/doc/man\-pages/. .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier et David Prévot . Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .