Утилиты операционной системы
-
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()или любой аналогичной функции, дублирующей текущий процесс. Доступна только на системах, гдеfork()определено.Предупреждение
Вызов C
fork()должен выполняться только из «главного» потока («главного» интерпретатора). То же самое относится кPyOS_BeforeFork().Добавлена в версии 3.7.
-
void PyOS_AfterFork_Parent() -
Часть Стабильной ABI на платформах с fork() с версии 3.7.
Функция обновления некоторых внутренних состояний после выполнения процесса fork. Она должна быть вызвана из родительского процесса после вызова
fork()или любой аналогичной функции, дублирующей текущий процесс, независимо от того, был ли процесс дублирован успешно. Доступна только на системах, гдеfork()определено.Предупреждение
Вызов C
fork()должен выполняться только из «главного» потока («главного» интерпретатора). То же самое относится кPyOS_AfterFork_Parent().Добавлена в версии 3.7.
-
void PyOS_AfterFork_Child() -
Часть Стабильной ABI на платформах с fork() с версии 3.7.
Функция обновления внутреннего состояния интерпретатора после выполнения процесса fork. Она должна быть вызвана из дочернего процесса после вызова
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().
Функция обновления некоторых внутренних состояний после выполнения процесса 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. Это тонкий оболочный wrapper вокруг
sigaction()илиsignal(). Не вызывайте эти функции напрямую!
-
PyOS_sighandler_t PyOS_setsig(int i, PyOS_sighandler_t h) -
Часть Стабильной ABI.
Устанавливает обработчик сигнала для сигнала i в h; возвращает старый обработчик сигнала. Это тонкий wrapper вокруг
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()для освобождения памяти. Если размер не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–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/c-api/sys.html