# 2 Basic Utilities

XXX These utilities should be moved to some other section...

void `Py_FatalError`(char *message)
  Print a fatal error message and kill the process. No cleanup is performed. This function should only be invoked when a condition is detected that would make it dangerous to continue using the Python interpreter; e.g., when the object administration appears to be corrupted. On Unix, the standard C library function `abort()` is called which will attempt to produce a ``core`' file.

void `Py_Exit`(int status)
  Exit the current process. This calls `Py_Finalize()` and then calls the standard C library function `exit(0)`.

int `Py_AtExit`(void (*func) ())
  Register a cleanup function to be called by `Py_Finalize()`. The cleanup function will be called with no arguments and should return no value. At most 32 cleanup functions can be registered. When the registration is successful, `Py_AtExit` returns 0; on failure, it returns -1. The cleanup function registered last is called first. Each cleanup function will be called at most once.