用Python结构模块解包C结构



我正在将二进制格式的结构从C发送到我的python脚本。

我的C结构:

struct EXAMPLE {
    float val1;
    float val2;
    float val3;
}

我如何发送:

struct EXAMPLE *ex;
ex->val1 = 5.3f;
ex->val2 = 12.5f;
ex->val3 = 15.5f;
write(fd, &ex, sizeof(struct EXAMPLE));

我如何接收:

buf = sock.recv(12)
buf = struct.unpack('f f f', buf)
print buf

但当我把它打印在python的一侧时,我得到的只是随机垃圾。我很确定python中的结构定义有问题,但我不确定是什么。

此行错误:

write(fd, &ex, sizeof(struct EXAMPLE));

应该是:

write(fd, ex, sizeof(struct EXAMPLE));

最新更新