| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- #if !defined(_WIN32)
- /* Disabled for Windows to avoid to link with the wrong library specified by
- * #pragma */
- # define Py_LIMITED_API 3
- #endif
- #include <Python.h>
- static PyObject* spam_system(PyObject* self, PyObject* args)
- {
- char const* 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
|