首页 > 代码库 > erlang 应用获取系统参数
erlang 应用获取系统参数
很多时候,我们的程序需要一些预定义的参数,比如上次说的tcp_server的例子
一般参数有集中途径,具体参考这里http://blog.yufeng.info/archives/2852
app里面,env字段,比如,我们的tcp_server_app.src
{application, tcp_server, [ {description, ""}, {vsn, "0.1"}, {registered, []}, {applications, [ kernel, stdlib ]}, {mod, { tcp_server_app, []}}, {env, [ {listen_port,7000} ]} ]}.
这种直接编译以后运行,不需要rebar generate
还有一种,放基于rebar项目的rel/files/sys.config里面,例如
[ {sasl, [ {sasl_error_logger, {file, "log/sasl-error.log"}}, {errlog_type, error}, {error_logger_mf_dir, "log/sasl"}, % Log directory {error_logger_mf_maxbytes, 10485760}, % 10 MB max file size {error_logger_mf_maxfiles, 5} % 5 files max ]}, {tcp_server,[ {listen_port,7000} ]}].
tcp_server是实现了application的behavior的模块名字
应用里面的代码大概就是这样
-define(DEF_PORT, 2222).get_app_env(Opt, Default) -> case application:get_env(Opt) of {ok, Val} -> Val; _ -> case init:get_argument(Opt) of [[Val | _]] -> Val; error -> Default end end.ListenPort = get_app_env(listen_port, ?DEF_PORT).
erlang 应用获取系统参数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。