| #include <stdio.h> | |
| #define PY_SSIZE_T_CLEAN | |
| #include <Python.h> | |
| #include "display_time.h" | |
| void display_time() | |
| { | |
| #if defined(PYTHON3) | |
| wchar_t* program = Py_DecodeLocale("display_time", NULL); | |
| if (program == NULL) { | |
| fprintf(stderr, "Fatal error: cannot decode argv[0]\n"); | |
| exit(1); | |
| } | |
| 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"; | |
| #endif | |
| Py_SetProgramName(program); /* optional but recommended */ | |
| Py_Initialize(); | |
| PyRun_SimpleString(cmd); | |
| #if defined(PYTHON3) | |
| if (Py_FinalizeEx() < 0) { | |
| exit(120); | |
| } | |
| PyMem_RawFree(program); | |
| #else | |
| Py_Finalize(); | |
| #endif | |
| } |