我正在将二进制格式的结构从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));