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

sys.md

110 строк · 10.7 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3.3/c-api/sys.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# Утилиты операционной системы89#### `int Py_FdIsInteractive(FILE *fp, const char *filename)`1011Возвращает истину (ненулевое значение), если файл стандартного ввода-вывода *fp* с именем *filename* считается интерактивным. Это справедливо для файлов, для которых `isatty(fileno(fp))` возвращает истину. Если глобальный флаг `Py_InteractiveFlag` истинен, эта функция также возвращает истину, если указатель *filename* равен *NULL* или имя совпадает с одной из строк `'<stdin>'` или `'???'`.1213#### `void PyOS_AfterFork()`1415Функция для обновления некоторого внутреннего состояния после ветвления процесса; её следует вызвать в новом процессе, если интерпретатор Python будет продолжать использоваться. Если в новый процесс загружается новый исполняемый файл, эту функцию вызывать не нужно.1617#### `int PyOS_CheckStack()`1819Возвращает истину, когда в интерпретаторе заканчивается стековое пространство. Это надёжная проверка, но доступна только если определён `USE_STACKCHECK` (в настоящее время на Windows с компилятором Microsoft Visual C++). `USE_STACKCHECK` определяется автоматически; не следует изменять это определение в собственном коде.2021#### `PyOS_sighandler_t PyOS_getsig(int i)`2223Возвращает текущий обработчик сигнала для сигнала *i*. Это тонкая обёртка вокруг `sigaction()` или `signal()`. Не вызывайте эти функции напрямую! `PyOS_sighandler_t` – это псевдоним typedef для `void (*)(int)`.2425#### `PyOS_sighandler_t PyOS_setsig(int i, PyOS_sighandler_t h)`2627Устанавливает обработчик сигнала для сигнала *i* равным *h*; возвращает старый обработчик сигнала. Это тонкая обёртка вокруг `sigaction()` или `signal()`. Не вызывайте эти функции напрямую! `PyOS_sighandler_t` – это псевдоним typedef для `void (*)(int)`.2829# Системные функции3031Это служебные функции, которые делают функциональность модуля [`sys`](https://python-all.ru/3.3/library/sys.html#module-sys) доступной из кода на C. Все они работают со словарём модуля [`sys`](https://python-all.ru/3.3/library/sys.html#module-sys) текущего потока интерпретатора, который хранится во внутренней структуре состояния потока.3233#### `PyObject *PySys_GetObject(char *name)`3435*Возвращаемое значение: заимствованная ссылка.*3637Возвращает объект *name* из модуля [`sys`](https://python-all.ru/3.3/library/sys.html#module-sys) или *NULL*, если он не существует, без установки исключения.3839#### `int PySys_SetObject(char *name, PyObject *v)`4041Устанавливает *name* в модуле [`sys`](https://python-all.ru/3.3/library/sys.html#module-sys) равным *v*, если только *v* не равен *NULL*; в этом случае *name* удаляется из модуля sys. Возвращает `0` при успехе, `-1` при ошибке.4243#### `void PySys_ResetWarnOptions()`4445Сбрасывает [`sys.warnoptions`](https://python-all.ru/3.3/library/sys.html#sys.warnoptions) в пустой список.4647#### `void PySys_AddWarnOption(wchar_t *s)`4849Добавляет *s* в [`sys.warnoptions`](https://python-all.ru/3.3/library/sys.html#sys.warnoptions).5051#### `void PySys_AddWarnOptionUnicode(PyObject *unicode)`5253Добавляет *unicode* в [`sys.warnoptions`](https://python-all.ru/3.3/library/sys.html#sys.warnoptions).5455#### `void PySys_SetPath(wchar_t *path)`5657Устанавливает [`sys.path`](https://python-all.ru/3.3/library/sys.html#sys.path) в объект-список путей, найденных в *path*, который должен представлять собой список путей, разделённых разделителем путей поиска платформы (`:` в Unix, `;` в Windows).5859#### `void PySys_WriteStdout(const char *format, ...)`6061Записывает выходную строку, описываемую *format*, в [`sys.stdout`](https://python-all.ru/3.3/library/sys.html#sys.stdout). Исключения не возникают, даже если происходит усечение (см. ниже).6263*format* должен ограничивать общий размер форматированной выходной строки до 1000 байт или менее – после 1000 байт строка усекается. В частности, это означает, что не должно быть неограниченных форматов «%s»; их следует ограничивать с помощью «%.\<N\>s», где \<N\> – десятичное число, рассчитанное так, чтобы \<N\> плюс максимальный размер другого форматированного текста не превышал 1000 байт. Также следует остерегаться «%f», который может печатать сотни цифр для очень больших чисел.6465Если возникает проблема или [`sys.stdout`](https://python-all.ru/3.3/library/sys.html#sys.stdout) не задан, форматированное сообщение записывается в настоящий (на уровне C) *stdout*.6667#### `void PySys_WriteStderr(const char *format, ...)`6869Как [`PySys_WriteStdout()`](https://python-all.ru/3.3/c-api/sys.html#PySys_WriteStdout), но запись производится в [`sys.stderr`](https://python-all.ru/3.3/library/sys.html#sys.stderr) или *stderr*.7071#### `void PySys_FormatStdout(const char *format, ...)`7273Функция, аналогичная PySys\_WriteStdout(), но форматирующая сообщение с помощью [`PyUnicode_FromFormatV()`](https://python-all.ru/3.3/c-api/unicode.html#PyUnicode_FromFormatV) и не усекающая сообщение до произвольной длины.7475Новое в версии 3.2.7677#### `void PySys_FormatStderr(const char *format, ...)`7879Как [`PySys_FormatStdout()`](https://python-all.ru/3.3/c-api/sys.html#PySys_FormatStdout), но запись производится в [`sys.stderr`](https://python-all.ru/3.3/library/sys.html#sys.stderr) или *stderr*.8081Новое в версии 3.2.8283#### `void PySys_AddXOption(const wchar_t *s)`8485Разбирает *s* как набор опций [*-X*](https://python-all.ru/3.3/using/cmdline.html#cmdoption-X) и добавляет их в текущее отображение опций, возвращаемое функцией [`PySys_GetXOptions()`](https://python-all.ru/3.3/c-api/sys.html#PySys_GetXOptions).8687Новое в версии 3.2.8889#### `PyObject *PySys_GetXOptions()`9091*Возвращаемое значение: заимствованная ссылка.*9293Возвращает текущий словарь опций [*-X*](https://python-all.ru/3.3/using/cmdline.html#cmdoption-X), аналогично [`sys._xoptions`](https://python-all.ru/3.3/library/sys.html#sys._xoptions). При ошибке возвращается *NULL* и устанавливается исключение.9495Новое в версии 3.2.9697# Управление процессами9899#### `void Py_FatalError(const char *message)`100101Выводит сообщение о фатальной ошибке и завершает процесс. Очистка не выполняется. Эту функцию следует вызывать только в случае, когда обнаружено состояние, при котором дальнейшее использование интерпретатора Python становится опасным; например, если управление объектами повреждено. В Unix вызывается функция стандартной библиотеки C `abort()`, которая пытается создать файл `core` .102103#### `void Py_Exit(int status)`104105Завершает текущий процесс. Вызывает [`Py_Finalize()`](https://python-all.ru/3.3/c-api/init.html#Py_Finalize), а затем – функцию стандартной библиотеки C `exit(status)`.106107#### `int Py_AtExit(void (*func) ())`108109Регистрирует функцию очистки, которая будет вызвана функцией [`Py_Finalize()`](https://python-all.ru/3.3/c-api/init.html#Py_Finalize). Функция очистки вызывается без аргументов и не должна возвращать значение. Можно зарегистрировать не более 32 функций очистки. В случае успешной регистрации [`Py_AtExit()`](https://python-all.ru/3.3/c-api/sys.html#Py_AtExit) возвращает `0`; при неудаче – `-1`. Последняя зарегистрированная функция очистки вызывается первой. Каждая функция очистки вызывается не более одного раза. Поскольку внутренняя финализация Python завершается до вызова функции очистки, функция *func* не должна вызывать никакие API Python.110