| |
| #include <stdio.h> |
| |
| #define PY_SSIZE_T_CLEAN |
| #include <Python.h> |
| |
| #include "display_time.h" |
| |
| void display_time(void) |
| { |
| #if defined(PYTHON3) |
| PyConfig config; |
| PyStatus status; |
| |
| PyConfig_InitPythonConfig(&config); |
| status = |
| PyConfig_SetBytesString(&config, &config.program_name, "display_time"); |
| if (PyStatus_Exception(status)) { |
| Py_ExitStatusException(status); |
| } |
| |
| char* cmd = "from time import time,ctime\n" |
| "print('Today is', ctime(time()))\n"; |
| #else |
| char* program = "display_time"; |
| char* cmd = "from time import time,ctime\n" |
| "print 'Today is', ctime(time())\n"; |
| |
| Py_SetProgramName(program); /* optional but recommended */ |
| #endif |
| Py_Initialize(); |
| PyRun_SimpleString(cmd); |
| #if defined(PYTHON3) |
| if (Py_FinalizeEx() < 0) { |
| exit(120); |
| } |
| PyConfig_Clear(&config); |
| #else |
| Py_Finalize(); |
| #endif |
| } |