【发布时间】:2012-04-26 10:06:28
【问题描述】:
我有一些 C 代码,我在 Python 中对其进行了扩展。扩展的 C 代码具有将一些结构附加到二进制文件的功能:
void writefunction(const struct struct1* some,const u_char* struct2){
f=fopen('save.bin',"ab");
if(f==NULL){
printf("Unable to open file");
exit(-1);
}
fwrite(some,sizeof(struct struct1),1,f);
fwrite(struct2,sizeof(u_char),4,f);
fclose(f);
}
现在我已经在 Python 中导入了代码。我想在 Python 中启动两个线程:一个将运行这个 writefunction(),另一个将读取同一个文件。 writefunction 在一个线程中正常工作,但从文件读取的 Python 函数不工作。
我做错了什么?
【问题讨论】:
-
你为什么要这样做?您只是想将数据从一个线程传递到另一个线程,还是有理由编写文件?
-
你的 Python 代码是什么,什么不工作?
-
Python 代码只是一个用于文件读取的代码。我想在线程中同时运行 C 和 python 函数。这是因为 c 的 write 函数正在编写一些只能由 c 完成的东西。
-
你的 C 函数应该只返回数据给调用者。线程有几种不使用文件进行通信的方式。如果您真的想不出办法,请通过写入管道来传递数据。试图通过磁盘文件同步 i/o 是自虐。
标签: python c multithreading