Утилиты операционной системы
-
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().Предупреждение
Вызов 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 в режиме UTF-8 Python.
Изменено в версии 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 в режиме UTF-8 Python.
Изменено в версии 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