码迷,mamicode.com
首页 > 其他好文 > 详细

erlang 应用获取系统参数

时间:2014-11-06 14:45:38      阅读:169      评论:0      收藏:0      [点我收藏+]

标签: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).

 

erlang 应用获取系统参数

标签:des   style   blog   http   io   color   ar   sp   div   

原文地址:http://www.cnblogs.com/ziyouchutuwenwu/p/4078483.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!