Утилиты операционной системы
-
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при ошибке декодирования или выделения памяти. Если 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