python扩展


/*
[root@58 extend_python]# gcc -c -I /usr/include/python2.5 add.c
[root@58 extend_python]# gcc -shared add.o -o add.so
[root@58 extend_python]# chcon -t texrel_shlib_t ./add.so
[root@58 extend_python]# python
Python 2.5.1 (r251:54863, Oct 30 2007, 13:54:11)
[GCC 4.1.2 20070925 (Red Hat 4.1.2-33)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import add
>>> add.add(3,4)
7
*/
#include "Python.h"
static PyObject* add(PyObject* self, PyObject* args)
{
    int x=0;
    int y=0;
    int z=0;
    if (! PyArg_ParseTuple(args, "i|i", &x, &y))
    return NULL;
    z=x+y;
    return Py_BuildValue("i", z);
}
static PyMethodDef addMethods[] =
{
    {"add", add, METH_VARARGS, "Execute a shell command."},
    {NULL, NULL, 0, NULL}
};
PyMODINIT_FUNC initadd()
{
    Py_InitModule("add", addMethods);
}