Утилиты операционной системы
-
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().Добавлено в версии 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.
Возвращает 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. Это простая обёртка над
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: В Windows функция теперь использует кодировку UTF-8, если
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 в Python функция теперь использует кодировку UTF-8.
Изменено в версии 3.8: В Windows функция теперь использует кодировку UTF-8, если
Py_LegacyWindowsFSEncodingFlagравен нулю.
© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.11/c-api/sys.html