Форум сайта python.su
0
мне нужно написать модуль расширения на си.
Допустим модуль simple который имеет функцию test.
simple.c:
PyObject *
test(PyObject *self,PyObject *args)
{
return Py_BuildValue(“”)
}
так вот когда в питоне я импортирую модуль и вызову функцию test могу ли я передать в качестве параметра спиок и как его в си функции привести к указателю типа unsigned char.
Вообще функция будет записывать в символьное устройство, я хочу передавать в качестве параметра в питоне спиок и длину и в си получать указатель на unsigned char и длину что бы воспользоваться функцией write!
Офлайн
253
Я бы посоветовал использовать модуль CTypes, а simple определить в динамически подгружаемой библиотеке.
По поводу передачи длины - передаете c_int
Сам массив удобно передавать так:
import numpy as np from ctypes import c_int n=200 arr=np.zeros(n,dtype='i') arr[0]=2 you_c_function(c_int(n),arr.ctypes.data)
Отредактировано doza_and (Июль 16, 2013 18:43:25)
Офлайн
0
Вот еще вопрос!
когда собираю модуль python setup.py build то модуль собирается,все нормально . как бы его собрать под arm ядро, пробовал указать так python setup.py build -carm-none-gnueabi-gcc
пишет вот что
error: don't know how to compile C/C++ code on platform ‘posix’ with ‘arm-none-linux-gnueabi-gcc’ compiler.
Спасибо заранее!
Офлайн