Утилиты операционной системы
-
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