我正在尝试从python中读取linux / proc / kpagecount
kpagecount存储一个条目数组,每个条目是一个64位计数物理帧被引用的次数。我通常可以从python
读取8个字节(64位)f = open("/proc/kpagecount", "rb")
a = f.read(8)
a是一个字符串。我不知道如何解释这6个字节的整数值,因为它可以是大端,小端或任何其他编码方式。我也找不到有关格式的信息。我怎么能弄明白呢?
答案 0 :(得分:1)
您可以使用以下方法找到系统的结束:
import sys; print(sys.byteorder)
现在您可以确定结束,迭代读取二进制文件的8个字节,并将它们存储在array
中。如果是little endian
,则按相反顺序(tbl.size -i -1
)存储它们,否则按正常顺序存储。 See endianess
最后,合并这8个字节,以便重建整个64位数字:
unsigned long long
变量,让我们说X
,然后将其初始化为0
。0
开始,所有先前存储的字节和:X
变量X+= (X<<8) + array[i]