#从源码编译安装Erlang
1. wget http://www.erlang.org/download/otp_src_r16b.tar.gz -p /usr/local/src
2. tar zxvf otp_src_r16b.tar.gz -c /usr/local/src
3. cd otp_src_r16b
4. ./configure --prefix=/usr/local/erlang
5. make
6. make install
7. 将"/usr/local/erlang/bin"加入PATH #ets相关操作 [1]
ets:all() %列出所有的ETS Table
ets:i() %给出一个ETS Table的清单 包含表的类型,数据量,使用内存,所有者信息
ets:i(tb) %输出ets中tb表的数据 #erlc编译文件到指定目录
erlc -o ../ebin hello_world_app.erl #导出所有函数
-compile(export_all). #使用erlang的dbg调试程序 [1] [2] [3]
dbg:tracer().
dbg:p(all,c).
dbg:tpl(test_mod, test_fun, dbg:fun2ms(fun(_) -> exception_trace() end)).
dbg:stop_clear(). %% dbg:tpl(test_mod, '_', dbg:fun2ms(fun(_A) -> [_A,mydebug] end)). #输出当前函数的调用栈
ZZ = try throw(a)
catch
throw:X ->
{X, erlang:get_stacktrace()}
end,
io:format("get_stacktrace:~p~n", [ZZ]), #清空绑定变量
f(). %% 清空所有绑定变量,在测试的时候非常有用
f(A). %% 清空指定的绑定变量A #erlang中的queue实例
Q = queue:new(),
io:format("====is_queue(Q):~p====~n",[queue:is_queue(Q)]),
Q1 = queue:in(a, Q),
Q1_len = queue:len(Q1),
io:format("====Q1_len:~p====~n",[Q1_len]),
Q2 = queue:in(b, Q1),
Q3 = queue:in(c, Q2),
Q3_len = queue:len(Q3),
io:format("====Q3_len:~p====~n",[Q3_len]),
io:format("====Q3_to_list:~p====~n",[queue:to_list(Q3)]).
输出结果:
====is_queue(Q):true====
====Q1_len:1====
====Q3_len:3====
====Q3_to_list:[a,b,c]==== #OTP中的handle_call的参数说明
handle_call(_Request, _From, State)
From是发送请求的客户端进程的PID,State则是客户端的当前状态。 #rebar.config中包含本地的库
{rsync, "file:///home/alex/projects/cowboy"} =========================
1> erlang:universaltime(). %% erlang:universaltime/0 这个方法是返回当前系统时间
{{2015,6,17},{1,15,12}}
2> MaxConns = proplists:get_value(max_connections, TransOpts, 1024). %% 从 List中查找 Key ,并返回它的值,如果不存在,则使用 Default 值。 MonitorRef = erlang:monitor(process, ConnPid),
  erlang doc:http://www.erlang.org/doc/man/erlang.html#monitor-2
  这边,我还查看了下 《erlang 编程指南》 148页,关于这个函数的用法如下:
    为了单向监控进程,可以把内置函数 erlang:monitor/2 添加到 Erlang中,如下调用:
      erlang:monitor(process, Proc)
    这样就生成了一个调用进程到另一个标记为 Proc 进程的监控进程,Proc 可以是进程标识符也可以是注册的名字。当带有进程标识符的进程终止的时候,消息:
      {'DOWN', MonitorRef, Type, Object, Info} 会发送到监控进程。这个消息包含一个对监控进程的引用。 url解析完后执行cowboy_handler:handler_init/4
如果返回{ok,Req,State}则请求结束并开始返回结果
返回结果前会执行handler()函数,如果这个函数也是返回一个{ok, Req, State}的结果,那cowboy将返回一个"200 OK"的HTTP响应。其他情况返回500的HTTP响应。 如果是rest,则会返回一个{update, protocol, Mod}的结果,比如Mod的值为"cowboy_rest"
接下来经过一个upgrade_protocol/2中间函数后会执行Module:upgrade/4函数。比如rest中应该是cowboy_rest:upgrade/4
upgrade/4中执行Handler:rest_init/2,如果返回{ok, Req, State}形式的结果则会正常返回值。
service_available/2
expect/6
call/3
...
Handler:rest_terminate/2这个函数最后会调用,应该返回一个{ok, Req, State}的结果cowboy才会返回"200 OK"的HTTP响应。 ----------------------
期代的结果是执行terminate_request/5函数,或者执行一个和它返回值相同的函数 erlang:function_exported(Module, Function, Arity) -> boolean() Types: Module = module()
Function = atom()
Arity = arity()
Returns true if the module Module is loaded and contains an exported function Function/Arity; otherwise false.
如果Module中存在一个导出的函数"Function/Arity"则返回true,其他的返回false。
Returns false for any BIF (functions implemented in C rather than in Erlang).

Erlang使用相关笔记的更多相关文章

  1. HTTPS证书申请相关笔记

    申请免费的HTTPS证书相关资料 参考资料: HTTPS 检测 苹果ATS检测 什么是ECC证书? 渠道2: Let's Encrypt 优点 缺点 Let's Encrypt 的是否支持非80,44 ...

  2. JNI相关笔记 [TOC]

    JNI相关笔记 目录 JNI相关笔记 1 生成native code所需要的头文件 2 JNI提供的一些函数和方法 3 局部引用,全局引用,全局弱引用. 4 异常 1 生成native code所需要 ...

  3. Hadoop相关笔记

    一.            Zookeeper( 分布式协调服务框架 ) 1.    Zookeeper概述和集群搭建: (1)       Zookeeper概述: Zookeeper 是一个分布式 ...

  4. erl_0014 《硝烟中的erlang》 读书笔记001 “绪论”

    1.大家听说Erlang,往往是因为其对高并发的良好支持.其实,Erlang的核心特征是容错,从某种程度上讲,并发只是容错这个约束下的一个副产品.容错是Erlang语言的DNA,也是和其他所有编程语言 ...

  5. redis相关笔记(二.集群配置及使用)

    redis笔记一 redis笔记二 redis笔记三 1.配置:在原redis-sentinel文件夹中添加{8337,8338,8339,8340}文件夹,且复制原8333中的配置 在上述8333配 ...

  6. redis相关笔记(三.redis设计与实现(笔记))

    redis笔记一 redis笔记二 redis笔记三 1.数据结构 1.1.简单动态字符串: 其属性有int len:长度,int free:空闲长度,char[] bur:字符数组(内容) 获取字符 ...

  7. Windows API 进程相关笔记

    0. 前言 最近做了一个进程信息相关的项目,整理了一下自己做项目时的笔记,分享给大家 1. 相关概念 1.1 HANDLE 概念 HANDLE(句柄)是Windows操作系统中的一个概念. 在Wind ...

  8. PHP相关笔记

    扩展包(相关链接):https://packagist.org/: 插件postman主要应用于web开发时get.post请求时查看其响应:

  9. lua相关笔记

    --[[ xpcall( 调用函数, 错误捕获函数 ); lua提供了xpcall来捕获异常 xpcall接受两个参数:调用函数.错误处理函数. 当错误发生时,Lua会在栈释放以前调用错误处理函数,因 ...

随机推荐

  1. MySQL 挺有意思

    1, 修改密码 mysql -u root -p update user set Password = PASSWORD('NEWPWD') WHERE user = 'root'; FLUSH PR ...

  2. Guacamole 介绍以及架构

    Guacamole的介绍以及架构 guacd Web应用程序 在Guacamole中与用户打交道的就是Web应用程序. 之前说过,Web应用程序自己不实现任何的远程桌面协议.Web应用程序依赖guac ...

  3. Eclipse: Resource is out of sync with the file system when publishing to tomcat server on Eclipse

    Link: http://stackoverflow.com/questions/4343735/avoiding-resource-is-out-of-sync-with-the-filesyste ...

  4. [linux]unixODBC的安装配置说明

    什么是unixODBC: ODBC(Open Database Connect)是由Microsoft 公司于1991 年提出的一个开放的,用于访问数据库的统一接口规范. unixODBC的是为非Wi ...

  5. Jquery-UI实现弹出框样式

    需要引用 <link href="CSS/jquery-ui.custom.min.css" rel="stylesheet" /> <scr ...

  6. 获取UILabel宽度的方法

    - (CGFloat)labelLength:(NSString *)str font:(CGFloat)font{ str = ISSTRING(str) ? str : @"" ...

  7. ThinkPHP3.2.2 Widget扩展以及widget demo实例

    Widget扩展一般用于页面组件的扩展. 先说明Widget被调用的方法,你只需要在你的模板文件中使用这样的语法:{:W("Demo/demo_widget_method",arr ...

  8. db2icrt创建实例,提示主机名无效

    有这样一个现象,在DB2安装后,使用db2icrt 来创建实例时,提示主机名无效,提示如下:   [root@centos-0 instance]# ./db2icrt -u db2inst1 db2 ...

  9. poj 2239 二分图最大匹配,基础题

    1.poj 2239   Selecting Courses   二分图最大匹配问题 2.总结:看到一个题解,直接用三维数组做的,很巧妙,很暴力.. 题意:N种课,给出时间,每种课在星期几的第几节课上 ...

  10. linux下使用线程锁互斥访问资源

    linux使用线程锁访问互斥资源: 1.线程锁的创建 pthread_mutex_t g_Mutex; 2.完整代码如下 #include <stdio.h> #include <s ...