linux cmdline参数解析

我们可以通过 cat /proc/cmdline来获取内核的命令行参数,但是每个参数是怎么在代码解析的, 以slub为例,在源码中有如下代码:

__setup("slub_min_order=", setup_slub_min_order);

__setup("slub_max_order=", setup_slub_max_order);

__setup("slub_min_objects=", setup_slub_min_objects); 

__setup("slub_nomerge", setup_slub_nomerge);


static int __init setup_slub_min_order(char *str)
{
        get_option(&str, &slub_min_order);               <====可以通过get_option函数来获取参数值

        return 1;
}


__setup是个宏, 第一个参数为命令行中的字符串,第二个参数为参数的处理函数, 如果命令行参数中有匹配的字符串,则调用相应的处理函数来解析, 进而可以通过命令行参数来控制某些模块的行为。

你可能感兴趣的:(linux cmdline参数解析)