2017-09-28 5 views
0

Julia에서 포인터와 관련된 값을 검색하는 방법은 무엇입니까? 예를 들어Julia MPI에서 C 포인터와 연관된 값 검색

,

import MPI 

function main() 
    MPI.Init() 

    comm = MPI.COMM_WORLD 
    println("Hello from processor $(MPI.MPI_GET_PROCESSOR_NAME) rank $(MPI.Comm_rank(comm)) of $(MPI.Comm_size(comm))\n") 
    MPI.Barrier(comm) 

    MPI.Finalize() 
end 

main() 

출력보다는 프로세서 이름보다 원료 포인터를 포함

Hello from processor Ptr{Void} @0x00007fc29b392290 rank 1 of 2 
Hello from processor Ptr{Void} @0x00007f7759d9f290 rank 0 of 2 

를 생성한다. 당신이 C 스타일인지 확인하는 경우

답변

1

(NUL은 종료) 문자열을 UTF-8 (또는 ASCII)로 인코딩 당신은 시도 할 수 :

unsafe_string(Ptr{UInt8}(MPI.MPI_GET_PROCESSOR_NAME)) 

이 문서 (https://docs.julialang.org/en/stable/stdlib/strings/#Base.unsafe_string)를 읽고주의 !

은 (인용 : "p는 요청 된 데이터의 길이에 대한 유효한 메모리 어드레스되지 않으면 충돌 때문이다."을 안전 "이 기능은 표지")