今天的Erlang Thursday我们简单讲讲 c:pid/3.
c:pid/3 三个入参分别是一个pid的三个部分的整数值,返回值的类型是与入参值对应的Pid类型。
我们调用 self 函数来得到当前的pid,然后我们可以调用 c:pid/3 和 self 返回的值进行比较。
|
|
这个函数有什么用呢?有时候当我们检测一个在线系统的时候,在Erlang里有些调用是需要Pid类型的入参而不只是pid的三个整数值。
|
|
让我们以正常的方式给这个函数传入一些让其异常的值看看它会发生什么?
|
|
像<0.0.0>这样的pid是有效的pid,但是传入无效的pid,函数抛出异常,从异常信息里我们看到它尝试调用 list_to_pid 。0.0.0>
让我们快速看看 list_to_pid 。
|
|
看起来 c:pid/3 是一个 list_to_pid 的封装函数,它把pid的三个部分的整数值构建成一个字符串,然后调用 list_to_pid 来得到一个 Pid 类型的值。