我正在使用 Erlang MQTT 代理,它使用 cuttlefish 为应用程序生成 .config 文件。配置文件中的值最终会在应用程序中使用,因此例如在某一时刻 Opts 变量将包含配置文件中的值,例如 {ssl_opts, {more, value, here}}...}
这些值存储在哪里?我如何从函数内部访问它们?我通常对整个过程感到困惑,帮助或链接将极大地帮助我的理解!
来自应用程序内核的模块应用程序负责它。这些值也可以使用函数 and
和and来访问。它存储在命名的公共表()中。准确地说,是内部模块负责的。application:get_env/1,2,3application:get_all_env/0,1application:get_key/1,2application:get_all_key/0,1etsac_tab[set, public, named_table, {read_concurrency,true}]application_controller
.app来自各种配置(和文件)的值.config被合并(主要是env键)并加载到ac_tab表中,application:load/1,2该表是appliaction:start/1,2. 请阅读《OTP 设计原理用户指南》的7 应用章节了解更多详细信息。
您的问题在How to use application:get_env()in Erlang/OTP?中也得到了部分回答。。