Документация Python неофициальный перевод

Утилиты операционной системыOperating System Utilities

int Py_FdIsInteractive(FILE *fp, const char *filename)

Возвращает истину (ненулевое значение), если файл стандартного ввода-вывода fp с именем filename считается интерактивным. Это справедливо для файлов, для которых isatty(fileno(fp)) возвращает истину. Если глобальный флаг Py_InteractiveFlag истинен, эта функция также возвращает истину, если указатель filename равен NULL или имя совпадает с одной из строк '<stdin>' или '???'.

void PyOS_AfterFork()

Функция для обновления некоторого внутреннего состояния после ветвления процесса; её следует вызвать в новом процессе, если интерпретатор Python будет продолжать использоваться. Если в новый процесс загружается новый исполняемый файл, эту функцию вызывать не нужно.

int PyOS_CheckStack()

Возвращает истину, когда в интерпретаторе заканчивается стековое пространство. Это надёжная проверка, но доступна только если определён USE_STACKCHECK (в настоящее время на Windows с компилятором Microsoft Visual C++). USE_STACKCHECK определяется автоматически; не следует изменять это определение в собственном коде.

PyOS_sighandler_t PyOS_getsig(int i)

Возвращает текущий обработчик сигнала для сигнала i. Это тонкая обёртка вокруг sigaction() или signal(). Не вызывайте эти функции напрямую! PyOS_sighandler_t – это псевдоним typedef для void (*)(int).

PyOS_sighandler_t PyOS_setsig(int i, PyOS_sighandler_t h)

Устанавливает обработчик сигнала для сигнала i равным h; возвращает старый обработчик сигнала. Это тонкая обёртка вокруг sigaction() или signal(). Не вызывайте эти функции напрямую! PyOS_sighandler_t – это псевдоним typedef для void (*)(int).

Системные функцииSystem Functions

Это служебные функции, которые делают функциональность модуля sys доступной из кода на C. Все они работают со словарём модуля sys текущего потока интерпретатора, который хранится во внутренней структуре состояния потока.

PyObject *PySys_GetObject(const char *name)
Возвращаемое значение: заимствованная ссылка.

Возвращает объект name из модуля sys или NULL, если он не существует, без установки исключения.

int PySys_SetObject(const char *name, PyObject *v)

Устанавливает name в модуле sys равным v, если только v не равен NULL; в этом случае name удаляется из модуля sys. Возвращает 0 при успехе, -1 при ошибке.

void PySys_ResetWarnOptions()

Сбрасывает sys.warnoptions в пустой список.

void PySys_AddWarnOption(wchar_t *s)

Добавляет s в sys.warnoptions.

void PySys_AddWarnOptionUnicode(PyObject *unicode)

Добавляет unicode в sys.warnoptions.

void PySys_SetPath(wchar_t *path)

Устанавливает sys.path в объект-список путей, найденных в path, который должен представлять собой список путей, разделённых разделителем путей поиска платформы (: в Unix, ; в Windows).

void PySys_WriteStdout(const char *format, ...)

Записывает выходную строку, описываемую format, в sys.stdout. Исключения не возникают, даже если происходит усечение (см. ниже).

format должен ограничивать общий размер форматированной выходной строки до 1000 байт или менее – после 1000 байт строка усекается. В частности, это означает, что не должно быть неограниченных форматов «%s»; их следует ограничивать с помощью «%.<N>s», где <N> – десятичное число, рассчитанное так, чтобы <N> плюс максимальный размер другого форматированного текста не превышал 1000 байт. Также следует остерегаться «%f», который может печатать сотни цифр для очень больших чисел.

Если возникает проблема или sys.stdout не задан, форматированное сообщение записывается в настоящий (на уровне C) stdout.

void PySys_WriteStderr(const char *format, ...)

Как PySys_WriteStdout(), но запись производится в sys.stderr или stderr.

void PySys_FormatStdout(const char *format, ...)

Функция, аналогичная PySys_WriteStdout(), но форматирующая сообщение с помощью PyUnicode_FromFormatV() и не усекающая сообщение до произвольной длины.

Новое в версии 3.2.

void PySys_FormatStderr(const char *format, ...)

Как PySys_FormatStdout(), но запись производится в sys.stderr или stderr.

Новое в версии 3.2.

void PySys_AddXOption(const wchar_t *s)

Разбирает s как набор опций -X и добавляет их в текущее отображение опций, возвращаемое функцией PySys_GetXOptions().

Новое в версии 3.2.

PyObject *PySys_GetXOptions()
Возвращаемое значение: заимствованная ссылка.

Возвращает текущий словарь опций -X, аналогично sys._xoptions. При ошибке возвращается NULL и устанавливается исключение.

Новое в версии 3.2.

Управление процессамиProcess Control

void Py_FatalError(const char *message)

Выводит сообщение о фатальной ошибке и завершает процесс. Очистка не выполняется. Эту функцию следует вызывать только в случае, когда обнаружено состояние, при котором дальнейшее использование интерпретатора Python становится опасным; например, если управление объектами повреждено. В Unix вызывается функция стандартной библиотеки C abort(), которая пытается создать файл core .

void Py_Exit(int status)

Завершает текущий процесс. Вызывает Py_Finalize(), а затем – функцию стандартной библиотеки C exit(status).

int Py_AtExit(void (*func) ())

Регистрирует функцию очистки, которая будет вызвана функцией Py_Finalize(). Функция очистки вызывается без аргументов и не должна возвращать значение. Можно зарегистрировать не более 32 функций очистки. В случае успешной регистрации Py_AtExit() возвращает 0; при неудаче – -1. Последняя зарегистрированная функция очистки вызывается первой. Каждая функция очистки вызывается не более одного раза. Поскольку внутренняя финализация Python завершается до вызова функции очистки, функция func не должна вызывать никакие API Python.