当open_port创建一个Port时, 可以打印出Port相关信息。
如果程序出问题时, 通过erlang shell连进去trouble shooting时, 如何根据该Port id, 得到对应的Port呢?
erlang:list_to_pid,可以通过pid找到对应的Process, 对于erlang port有吗?
--
Thanks & Regards
Denny Zhang
Yu Feng <mryu...@gmail.com>编写:
专业呀
Sent from my iPhoneerlang没提供,有两个方法自己写:一个是从erlang:ports()返回的列表里查找-module(no_to_port).-export([impl1/2, impl2/2]).impl1(Part1, Part2)->[Port] = lists:filter(fun(P)-> proplists:get_value('id',erlang:port_info(P)) =:= Part1 * 256 + Part2 end, erlang:ports()),Port.另一个是直接拼出表示port的binary,再转成termimpl2(Part1, Part2)->Node = list_to_binary(atom_to_list(node())),Size = byte_size(Node),NO = Part1 * 256 + Part2,binary_to_term(<<131,102,100, Size:16, Node/binary, NO:32, 0>>).