1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- #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 Py_BuildValue("i", sts);
- }
- static PyMethodDef SpamMethods[] = {
- {"system", spam_system, METH_VARARGS,
- "Execute a shell command."},
- {NULL, NULL, 0, NULL} /* Sentinel */
- };
- #if PY_VERSION_HEX >= 0x03000000
- /* Python 3.x code */
- static struct PyModuleDef spammodule = {
- PyModuleDef_HEAD_INIT,
- "spam", /* name of module */
- "spam_doc", /* 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_spam(void)
- {
- (void) PyModule_Create(&spammodule);
- }
- #else
- /* Python 2.x code */
- PyMODINIT_FUNC
- initspam(void)
- {
- (void) Py_InitModule("spam", SpamMethods);
- }
- #endif
|