【发布时间】:2015-03-17 11:26:11
【问题描述】:
我想把 erlang 中的 Pid 变成一个字符串,我该怎么做呢?
有没有办法对 Pid 进行模式匹配?
{Node, Index, Number} = <0.121.0>.
【问题讨论】:
-
对于节点识别,请改用node/1。
-
你能解释一下你为什么想要这个吗?听起来您试图以错误的方式解决问题。
标签: erlang
我想把 erlang 中的 Pid 变成一个字符串,我该怎么做呢?
有没有办法对 Pid 进行模式匹配?
{Node, Index, Number} = <0.121.0>.
【问题讨论】:
标签: erlang
pid_tokens(Pid) ->
PidStr = pid_to_list(Pid),
PidStr1 = lists:sublist(PidStr, 2, length(PidStr)-2),
[N, P1, P2] = [list_to_integer(T) || T <- string:tokens(PidStr1,[$.])],
{N, P1, P2}.
这样的事情可能对你有用。其中 Pid 是您要匹配的进程 ID
【讨论】:
This BIF is intended for debugging and for use in the Erlang operating system. It should not be used in application programs.
pid_to_list 和 list_to_pid 在调试期间很方便,当您在 shell 中复制和粘贴 pid 时。唯一可能在实际程序中派上用场的时刻是检查进程是否在远程节点上。还有另一个功能:node(Pid).