| #include <Python.h> | |
| 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); */ | |
| return Py_BuildValue("i", sts); | |
| } | |
| static PyMethodDef SpamMethods[] = { | |
| { "system", spam_system, METH_VARARGS, "Execute a shell command." }, | |
| { NULL, NULL, 0, NULL } /* Sentinel */ | |
| }; | |
| #if defined(PYTHON2) | |
| PyMODINIT_FUNC initspam2(void) | |
| { | |
| (void)Py_InitModule("spam2", SpamMethods); | |
| } | |
| #endif | |
| #if defined(PYTHON3) | |
| static struct PyModuleDef spammodule = { | |
| PyModuleDef_HEAD_INIT, "spam3", /* name of module */ | |
| NULL, /* module documentation, may be NULL */ | |
| -1, /* size of per-interpreter state of the module, | |
| or -1 if the module keeps state in global variables. */ | |
| SpamMethods | |
| }; | |
| PyMODINIT_FUNC PyInit_spam3(void) | |
| { | |
| return PyModule_Create(&spammodule); | |
| } | |
| #endif |