在C和Python之间共享变量

2024-09-21 03:08:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用一个命名管道FIFO在C(生成数字的循环是C)和python(监听C生成的数字并读取它们并处理它们)之间进行通信。 代码运行良好,除了在C中生成的每个数字之外,我需要关闭fifo才能在Python中看到它,否则在调用close命令之前它不会在Python中显示。我不知道在python代码中打开和关闭FIFO是否是一个好主意。我需要注意的是,C代码每50毫秒生成一个数字。这就是为什么我怀疑打开和关闭是否是个好主意。 下面是我用C和Python编写的代码:

C作为服务器:

while (1){
            t=time_in_ms();
            if (t-t0>=50){
                    t0=t;
                    flag=1;
            }
            else{
                    flag=0;
            }
            if (flag==1){
                    flag=0;
                    printf("%lld %lld\n",count,t);
                    count+=1;
                    fprintf(f,"%lld\r",t);
                    fflush(f);
                    fclose(f);
                    f=fopen("fifo","w");

            }
    }

并以Python作为客户端代码:

^{pr2}$

Tags: 代码命令closeif管道count数字命名
1条回答
网友
1楼 · 发布于 2024-09-21 03:08:27

下面是一个小的工作示例

Python方面:

with open('./test_out.fifo', 'r') as fo:
    message = fo.readline()
    print(message)

在“服务器”C端

^{pr2}$

C程序末尾的无休止的循环只是为了证明在python程序中读取数据之前不需要关闭文件

我还应该说我已经有一段时间没有做过C代码了。在

相关问题 更多 >

    热门问题