display_time.c 860 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #include <stdio.h>
  2. #define PY_SSIZE_T_CLEAN
  3. #include <Python.h>
  4. #include "display_time.h"
  5. void display_time(void)
  6. {
  7. #if defined(PYTHON3)
  8. PyConfig config;
  9. PyStatus status;
  10. PyConfig_InitPythonConfig(&config);
  11. status =
  12. PyConfig_SetBytesString(&config, &config.program_name, "display_time");
  13. if (PyStatus_Exception(status)) {
  14. Py_ExitStatusException(status);
  15. }
  16. char* cmd = "from time import time,ctime\n"
  17. "print('Today is', ctime(time()))\n";
  18. #else
  19. char* program = "display_time";
  20. char* cmd = "from time import time,ctime\n"
  21. "print 'Today is', ctime(time())\n";
  22. Py_SetProgramName(program); /* optional but recommended */
  23. #endif
  24. Py_Initialize();
  25. PyRun_SimpleString(cmd);
  26. #if defined(PYTHON3)
  27. if (Py_FinalizeEx() < 0) {
  28. exit(120);
  29. }
  30. PyConfig_Clear(&config);
  31. #else
  32. Py_Finalize();
  33. #endif
  34. }