标签:des style blog http io color ar sp div
很多时候,我们的程序需要一些预定义的参数,比如上次说的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).
标签:des style blog http io color ar sp div
原文地址:http://www.cnblogs.com/ziyouchutuwenwu/p/4078483.html