Pokud se podíváte na definici nových funkcí:
/* Each module must use one module_init(). */
#define module_init(initfn) \
static inline initcall_t __inittest(void) \
{ return initfn; } \
int init_module(void) __attribute__((alias(#initfn)));
/* This is only required if you want to be unloadable. */
#define module_exit(exitfn) \
static inline exitcall_t __exittest(void) \
{ return exitfn; } \
void cleanup_module(void) __attribute__((alias(#exitfn)));
Uvidíte, že zajišťuje, že je zahrnuta správná standardní verze, takže tyto speciální funkce může kompilátor správně zpracovat. To je to, co dělá interní API Linuxu, vyvíjí se, pokud existují lepší způsoby řešení problému.
Jaká je výhoda [module_init] v jádře 2.6
module_init
také ukončeno ve 2.4.
Přidává nezbytný standard pro inicializaci modulu a spuštění vstupní funkce, když je soubor modulu zkompilován do jádra, nikoli jako modul.
Jak mohu správně spouštět skripty příkazového řádku Perl one-liner?
Jak může moje aplikace C/C++ určit, zda uživatel root provádí příkaz?