Spec-Zone.ru › Python 3.13

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

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)

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

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

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

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

См. также

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.

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

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

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

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

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

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(). Если size не равен 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–2025 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/c-api/sys.html

Spec-Zone.ru

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