Spec-Zone.ru › Python 3.10

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

PyObject *PyOS_FSPath(PyObject *path)
Значение возврата: Новая ссылка. Часть Стабильной ABI с версии 3.6.

Возвращает представление файловой системы для path. Если объект является объектом str или bytes, то возвращается новая сильная ссылка. Если объект реализует интерфейс os.PathLike, то возвращается __fspath__(), при условии, что это объект str или bytes. В противном случае генерируется TypeError и возвращается NULL.

Новая в версии 3.6.

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

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

void PyOS_BeforeFork()
Часть Стабильной ABI на платформах с fork() с версии 3.7.

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

Предупреждение

Вызов C fork() должен выполняться только из «главного» потока (главного интерпретатора). То же самое относится к PyOS_BeforeFork().

Новая в версии 3.7.

void PyOS_AfterFork_Parent()
Часть Стабильной ABI на платформах с fork() с версии 3.7.

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

Предупреждение

Вызов C fork() должен выполняться только из «главного» потока (главного интерпретатора). То же самое относится к PyOS_AfterFork_Parent().

Новая в версии 3.7.

void PyOS_AfterFork_Child()
Часть Стабильной ABI на платформах с fork() с версии 3.7.

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

Предупреждение

Вызов C fork() должен выполняться только из «главного» потока (главного интерпретатора). То же самое относится к PyOS_AfterFork_Child().

См. также

os.register_at_fork() позволяет регистрировать пользовательские Python-функции, которые будут вызываться PyOS_BeforeFork(), PyOS_AfterFork_Parent() и PyOS_AfterFork_Child().

void PyOS_AfterFork()
Часть Стабильной ABI на платформах с fork().

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

Устарело начиная с версии 3.7: Эта функция устарела и заменена PyOS_AfterFork_Child().

int PyOS_CheckStack()
Часть Стабильной ABI на платформах с USE_STACKCHECK с версии 3.7.

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

PyOS_sighandler_t PyOS_getsig(int i)
Часть Стабильной ABI.

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

PyOS_sighandler_t PyOS_setsig(int i, PyOS_sighandler_t h)
Часть Стабильной ABI.

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

wchar_t *Py_DecodeLocale(const char *arg, size_t *size)
Часть Стабильной ABI с версии 3.7.

Предупреждение

Эту функцию не следует вызывать напрямую: используйте API PyConfig с функцией PyConfig_SetBytesString(), которая гарантирует, что Python предварительно инициализирован.

Эту функцию нельзя вызывать до предварительной инициализации Python и для правильной настройки локали LC_CTYPE: см. функцию Py_PreInitialize().

Декодирование байтовой строки из кодировки и обработчика ошибок файловой системы. Если обработчик ошибок — обработчик ошибок surrogateescape, недопустимые байты декодируются как символы в диапазоне U+DC80..U+DCFF; и если последовательность байтов может быть декодирована как суррогатный символ, байты экранируются с помощью обработчика ошибок surrogateescape вместо их декодирования.

Возвращает указатель на недавно выделенную строку широких символов, используйте PyMem_RawFree() для освобождения памяти. Если размер не NULL, запишите количество широких символов, не включая нулевой символ, в *size

Возвращает NULL при ошибке декодирования или выделения памяти. Если размер не NULL, *size устанавливается в (size_t)-1 при ошибке памяти или в (size_t)-2 при ошибке декодирования.

Кодировка и обработчик ошибок файловой системы выбираются PyConfig_Read(): см. члены filesystem_encoding и filesystem_errors структуры PyConfig.

Ошибки декодирования никогда не должны происходить, если только нет ошибки в библиотеке C.

Используйте функцию Py_EncodeLocale() для кодирования строки символов обратно в байтовую строку.

См. также

Функции PyUnicode_DecodeFSDefaultAndSize() и PyUnicode_DecodeLocaleAndSize().

Введено в версии 3.5.

Изменено в версии 3.7: Функция теперь использует кодировку UTF-8 в режиме UTF-8 Python.

Изменено в версии 3.8: Функция теперь использует кодировку UTF-8 в Windows, если Py_LegacyWindowsFSEncodingFlag равно нулю.

char *Py_EncodeLocale(const wchar_t *text, size_t *error_pos)
Часть Стабильной ABI с версии 3.7.

Кодирование строки широких символов в кодировку и обработчик ошибок файловой системы. Если обработчик ошибок — обработчик ошибок surrogateescape, суррогатные символы в диапазоне U+DC80..U+DCFF преобразуются в байты 0x80..0xFF.

Возвращает указатель на новую выделенную байтовую строку, используйте PyMem_Free() для освобождения памяти. Возвращает NULL при ошибке кодирования или выделения памяти.

Если error_pos не NULL, *error_pos устанавливается в (size_t)-1 при успехе или в индекс неверного символа при ошибке кодирования.

Кодировка и обработчик ошибок файловой системы выбираются PyConfig_Read(): см. члены filesystem_encoding и filesystem_errors структуры PyConfig.

Используйте функцию Py_DecodeLocale() для декодирования байтовой строки обратно в строку широких символов.

Предупреждение

Эту функцию нельзя вызывать до предварительной инициализации Python и для правильной настройки локали LC_CTYPE: см. функцию Py_PreInitialize().

См. также

Функции PyUnicode_EncodeFSDefault() и PyUnicode_EncodeLocale().

Введено в версии 3.5.

Изменено в версии 3.7: Функция теперь использует кодировку UTF-8 в режиме UTF-8 Python.

Изменено в версии 3.8: Функция теперь использует кодировку UTF-8 в Windows, если Py_LegacyWindowsFSEncodingFlag равно нулю.

© 2001–2023 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.10/c-api/sys.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API