2017-09-28 24 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 

を生成します。

答えて

1

あなたはそれがUTF-8(またはASCII)としてエンコードされたCスタイル(NUL終端)文字列であることを確信している場合は、試みることができる:

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

ドキュメント(https://docs.julialang.org/en/stable/stdlib/strings/#Base.unsafe_string)を読むと、注意してください!

(シテ:安全でない「この機能が標識されている 『』 pが要求された長さのデータに有効なメモリアドレスでない場合、それはクラッシュしますので。」)