Spec-Zone.ru › Python 3.11

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

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).

END_OF_DOCUMENT_MARKER
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 при ошибке декодирования или выделения памяти. Если size не 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.11/c-api/sys.html

Spec-Zone.ru

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