From: W. Trevor King Date: Wed, 17 Apr 2013 15:39:29 +0000 (-0400) Subject: spammify.c: Add the basic extension code X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=a7a7743a2367540cafeaa1741e3285851865a96a;p=cpython-extension.git spammify.c: Add the basic extension code From http://docs.python.org/3/extending/extending.html --- a7a7743a2367540cafeaa1741e3285851865a96a diff --git a/spammify.c b/spammify.c new file mode 100644 index 0000000..d586aac --- /dev/null +++ b/spammify.c @@ -0,0 +1,34 @@ +#include +#include + +static PyObject * +spam_system(PyObject *self, PyObject *args) +{ + const char *command; + int sts; + + if (!PyArg_ParseTuple(args, "s", &command)) + return NULL; + sts = system(command); + return PyLong_FromLong(sts); +} + +static PyMethodDef SpamMethods[] = { + {"system", spam_system, METH_VARARGS, + "Execute a shell command."}, + {NULL, NULL, 0, NULL} /* Sentinel */ +}; + +static struct PyModuleDef spammodule = { + PyModuleDef_HEAD_INIT, + "spam", /* name of module */ + spam_doc, /* module documentation, may be NULL */ + 0, /* size of per-interpreter state of the module */ + SpamMethods +}; + +PyMODINIT_FUNC +PyInit_spam(void) +{ + return PyModule_Create(&spammodule); +}