Spec-Zone.ru › Python 3.12

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

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. Если PyConfig.interactive ненулевое, эта функция также возвращает true, если указатель на filename равен NULL или если имя равно одной из строк '<stdin>' или '???'.

Эта функция не должна вызываться до инициализации Python.

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

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

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

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

Добавлена в версии 3.7.

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

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

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

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

Добавлена в версии 3.7.

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

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

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

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

Добавлена в версии 3.7.

См. также

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

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

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

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

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

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

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

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

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

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

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 в Режим Python UTF-8.

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

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 в Режим Python UTF-8.

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

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

Spec-Zone.ru

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