Утилиты операционной системы¶Operating System Utilities
- int Py_FdIsInteractive(FILE *fp, const char *filename)¶
- Возвращает истину (ненулевое значение), если файл стандартного ввода-вывода fp с именем filename считается интерактивным. Это справедливо для файлов, для которых isatty(fileno(fp)) возвращает истину. Если глобальный флаг Py_InteractiveFlag истинен, эта функция также возвращает истину, если указатель filename равен NULL или имя совпадает с одной из строк '<stdin>' или '???'.
- long PyOS_GetLastModificationTime(char *filename)¶
- Возвращает время последнего изменения файла filename. Результат кодируется так же, как отметка времени, возвращаемая стандартной библиотечной функцией языка C time.
- 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(char *name)¶
- Возвращаемое значение: заимствованная ссылка.
Возвращает объект name из модуля sys или NULL, если он не существует, без установки исключения.
- FILE *PySys_GetFile(char *name, FILE *def)¶
- Возвращает FILE*, связанный с объектом name в модуле sys, или def, если name отсутствует в модуле или не связан с FILE*.
- int PySys_SetObject(char *name, PyObject *v)¶
- Устанавливает name в модуле sys равным v, если только v не равен NULL; в этом случае name удаляется из модуля sys. Возвращает 0 при успехе, -1 при ошибке.
- void PySys_ResetWarnOptions(void)¶
- Сбрасывает sys.warnoptions в пустой список.
- void PySys_AddWarnOption(wchar_t *s)¶
- Добавляет s в 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, ...)¶
- Как и выше, но запись производится в sys.stderr или stderr.
Управление процессами¶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.