这琅绫擎有一项“Support reading an inittab file”,这个设备项是选中的,描述中有“inittab”这个悼?船和init源码中说到的parse_inittab()很类似,好,make menuconfig先放到一边,来看看设备文件,打开顶层目次的Config.in,全局搜一下"init",发明只有最下面有:
- source init/Config.in
进入init文件夹,打开个中的Config.in文件,发明设备项
- config FEATURE_USE_INITTAB
- bool "Support reading an inittab file"
- default y
- depends on INIT
- help
- Allow init to read an inittab file when the system boot.
猜测没错,CONFIG_FEATURE_USE_INITTAB这个宏确切定义了,回到init源码分析,进入parse_inittab()函数。起首看到这个函数前有一大年夜段注释,看看它说什么
- /* NOTE that if CONFIG_FEATURE_USE_INITTAB is NOT defined,
- * then parse_inittab() simply adds in some default
- * actions (i.e., runs INIT_SCRIPT and then starts a pair
- * of "askfirst" shells). If CONFIG_FEATURE_USE_INITTAB
- * _is_ defined, but /etc/inittab is missing, this
- * results in the same set of default behaviors.
- */
前面的话和之前的if断定意思差不多,如不雅定义了XXX这个宏,然则/etc/inittab这个文件没有,也会走默认的action,好,大年夜概猜想一下,parse_inttab()函数似乎和要分析的app启动有点关系了,如不雅定义了XXX宏,就去解析/etc/inittab这个文件,履行琅绫擎的器械,如不雅没有定义XXX宏或者/etc/inittab文件不存在,履行一些默认的器械
好,搞清跋扈一件事,/etc/inittab这个文件很重要,可能须要本身来创建这个文件,往琅绫擎写器械,然则写什么内容呢?今朝还不知道。那如不雅不走/etc/inittab这一条路呢,默认会履行的action又是什么意思?来分析一下parse_inittab()这个函数
- ::askfirst:-/bin/sh
- static void parse_inittab(void)
- {
- #if ENABLE_FEATURE_USE_INITTAB
- char *token[4];
- parser_t *parser = config_open2("/etc/inittab", fopen_for_read);
- if (parser == NULL)
- #endif
- {
- /* No inittab file - set up some
推荐阅读
ES6,正式名称是ECMAScript2015,然则ES6这个名称加倍简洁。ES6已经不再是JavaScript最新的标准,然则它已经广泛用于编程实践中。如不雅你还没用过ES6,如今还不算太晚...下面是10个ES6最>>>详细阅读
地址:http://www.17bianji.com/lsqh/37057.html
1/2 1