2015-01-19 3 views
1

얼랭의 Pid를 < 0.121.0>으로 변환하고 싶습니다. 어떻게해야합니까?얼랭 (Erlang) : 문자열을 pid로 변환

Pid와의 패턴 일치 방법이 있습니까? 이 같은

{Node, Index, Number} = <0.121.0>. 
+1

노드 식별의 경우 [node/1] (http://erlang.org/doc/man/erlang.html#node-1)을 대신 사용하십시오. –

+1

이유를 설명 할 수 있습니까? 잘못된 방식으로 뭔가를 해결하려고하는 것 같습니다. –

답변

1
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입니다

+0

그래도 조심하십시오. '이 BIF는 Erlang 운영체제에서 디버깅과 사용을 목적으로합니다. 응용 프로그램에서는 사용해서는 안됩니다. " – tkowal

+0

@tkowal 위험 요소는 무엇입니까? – BC00

+2

경고없이 변경 될 수 있으므로 Pid 내부 구조 만 사용하면 안됩니다. 'pid_to_list'와'list_to_pid'는 쉘에서 pid를 복사하여 붙여 넣을 때 디버깅하는 동안 편리합니다. 프로세스가 원격 노드에있는 경우 실제 프로그램에서 유용 할 수있는 유일한 순간입니다. 그 또 다른 기능은'node (Pid)'입니다. – tkowal

관련 문제