【发布时间】:2016-06-22 11:15:31
【问题描述】:
我在 Python 中使用ctypes 打开一个文件以便用 C++ 编写。
我的 C++ 代码:
extern "C" {
void openfile(const char *filename) {
cout<<"File to open for writing = " <<filename<<endl;
FILE *fp = fopen(filename,"w");
fprintf(fp,"writing into file");
fclose(fp);
}
}
我的 Python 代码:
>>> import ctypes
>>> lib = ctypes.cdll.LoadLibrary('/in/vrtime/mahesh/blue/rnd/software/test/test.so')
>>> outfile = "myfirstfile.txt"
>>> lib.openfile(outfile)
File to open for writing = m
我得到的文件名是m,这是我文件的第一个char 字符。
如何将整个字符串传递给C端?
【问题讨论】:
-
你需要从 python 字符串转换为 C++,传递类似
ctypes.c_char_p("myfirstfile.txt") -
我检查过了,但仍然无法将整个字符串传递到 c 端。
标签: python ctypes python-c-api