我在C中将一个浮点变量转换为字符串,并在Linux中使用命名管道将其发送到Python。问题是我在Python端读取乱码字符和实际值。你知道吗
C代码将浮点转换为字符串
char str[64];
sprintf(str, "%f\n", angle);
write(fd_fifo, str, sizeof(str));
读取接收值并在终端上打印的Python代码
#!/usr/bin/python
import os
import errno
import time
FIFO = '/tmp/bldc_fifo'
try:
os.mkfifo(FIFO)
except OSError as oe:
if oe.errno != errno.EEXIST:
raise
print("Opening FIFO...")
with open(FIFO, encoding='utf-8', errors='ignore') as fifo:
print("FIFO opened")
while True:
time.sleep(0.1)
data = fifo.read()
print(data)
在终端打印中,我看到如下内容:
4\W`U7z3\ENU11.415311号
我期望看到的地方:
11.415311美元
用
strlen()
代替sizeof
在代码中,错误出现在对
write()
的调用中相关问题 更多 >
编程相关推荐