リストオブジェクトに入っている文字列を表示し、リストオブジェクト内のオブジェクト数を返却するCプログラムを、test2モジュールとして作成してみた。
#include <Python.h>
static PyObject *
test2_listnum(PyObject *self, PyObject *args)
{
PyObject *list;
PyObject *item;
char *itemstr;
int num;
int i;
if (!PyArg_ParseTuple(args, "O", &list)){
return NULL;
}
num = PyList_Size(list);
for (i=0;i item = PyList_GetItem(list, i);
itemstr = PyString_AsString(item);
printf("%s\n", itemstr);
}
return Py_BuildValue("i", num);
}
これをビルドするためのMakefile。
CC = gcc
.c.o:
$(CC) -fPIC -I"/usr/include/python2.4" -c $<
all: test2
clean:
rm -r *.o; rm -r *.so
test2: test2.o
$(CC) $(OPT) -Wl,-soname,$@.so -shared -o $@.so $^
そして、テスト用のPythonプログラム。
#!/usr/bin/python
import test2
a = []
a.append("test1")
a.append("test2")
num = test2.listnum(a)
print num
0 件のコメント:
コメントを投稿