#从源码编译安装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. 疯狂java笔记(七) - Java集合之Map

    Map是以键值对(key-value)的形式来存储数据的.而且Map不允许key的重复,通过Map存储key-value对时,只需要考虑key的存储就可以,key存储后value就会跟着key(完全可 ...

  2. ZOJ3229 Shoot the Bullet(有源汇流量有上下界网络的最大流)

    题目大概说在n天里给m个女孩拍照,每个女孩至少要拍Gi张照片,每一天最多拍Dk张相片且都有Ck个拍照目标,每一个目标拍照的张数要在[Lki, Rki]范围内,问最多能拍几张照片. 源点-天-女孩-汇点 ...

  3. 编程之路 - 写给打算进入IT行业的新人们

    IT=挨踢,这是IT人的自嘲,进入IT行业是有四五年了,也算得上是一个“老人”了吧,见了不少新人,面试了不少新人,也带了一些新人,多多少少还是有点发言权的. 关于书本 新人们常常会说我看了多少多少的书 ...

  4. storm UI

    Storm UI ——本文主要解释下storm ui上各项属性的含义. 通过http://UI_Server:8080可以打开Storm Web UI看看Storm集群的状态. 1. mainpage ...

  5. hadoop2.0安装中遇到的错误:mapreduce.shuffle set in yarn.nodemanager.aux-services is invalid

    转:http://blog.csdn.net/bamuta/article/details/12995139 解决办法 : 在1个网站上找到了解决方法,(网络忘了没记)urg, my copy/pas ...

  6. linux安装SVN

    1. 下载软件包 http://archive.apache.org/dist/subversion/ http://archive.apache.org/dist/subversion/subver ...

  7. 一道常被人轻视的前端JS面试题(转)

    分享下我曾经出过的一道面试题,此题是我出的一套前端面试题中的最后一题,用来考核面试者的JavaScript的综合能力,很可惜到目前为止的将近两年中,几乎没有人能够完全答对,并非多难只是因为大多面试者过 ...

  8. Leetcode Unique Binary Search Trees

    Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For examp ...

  9. 这次,雅虎真的撤销QA团队了

    在一个软件开发过程中取消了质量保证团队会发生什么?更少,而不是更多的错误,以及一个大大加快的开发周期. 至少,根据雅虎的经验,确实如此.该公司的首席设计师Amotz Maimon,以及科学与技术高级副 ...

  10. BZOJ4491: 我也不知道题目名字是什么

    Description 给定一个序列A[i],每次询问l,r,求[l,r]内最长子串,使得该子串为不上升子串或不下降子串 Input 第一行n,表示A数组有多少元素接下来一行为n个整数A[i]接下来一 ...