【发布时间】:2013-08-03 11:29:57
【问题描述】:
我创建了一个需要输入的 c 程序(通过 scanf)。然后我创建了 .so 文件并在 python 脚本中调用它,这样当我运行脚本时,将在终端中询问输入。但是当我运行python程序时,终端挂了。
请注意:
1。我的c代码
#include <stdio.h>
#include <string.h>
int open(void)
{
char input[20];
scanf("input = %s\n",&input);
printf("\n%s\n","input");
}
2。我用于编译代码的命令
gcc -c usb_comm.c
3.创建.so文件
gcc -shared -o libhello.so usb_comm.o
4.python程序的相关部分
加载 .so 文件
from ctypes import cdll
mydll = cdll.LoadLibrary('/home/vineeshvs/Dropbox/wel/workspace/Atmel/libhello.so')
调用c程序中定义的函数
mydll.scanf("%c",mydll.open())
感谢收听 :)
【问题讨论】:
-
您可能想了解
subprocessmodule,尤其是它的Popenclass。然后将 C 模块重新创建为普通程序。
标签: python c python-extensions