例如,如果我这样做(在朱莉娅):
"parent" | "another" | "child"
,f = open("out", "w"); write(f, 0x424d); close(f)
的输出结果为:xxd out
为什么不按顺序? (00000000: 4d42 MB
)
答案 0 :(得分:2)
基本上,Mateen Ulhaq指出这是一个字节序问题。以下内容可能会帮助您强制处理文件的字节序:
function dump_bytes(f,v)
foreach(b->write(f,b),[unsafe_load(reinterpret(Ptr{UInt8},
pointer_from_objref(v)),i) for i=1:sizeof(v)])
return nothing
end
f = open("out","w")
dump_bytes(f,0x1234)
close(f)
反过来说,即强制处理器上文件的字节顺序,你可以像{Mateen的评论建议的那样reinterpret(Int16, read(f))
。