Утилиты операционной системы
-
PyObject* PyOS_FSPath(PyObject *path) -
Значение возврата: Новый ссылка.
Возвращает представление файловой системы для 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() -
Функция для подготовки некоторых внутренних состояний перед разветвлением процесса. Она должна вызываться перед вызовом
fork()или любой аналогичной функции, которая клонирует текущий процесс. Доступна только на системах, гдеfork()определено.Предупреждение
Вызов C
fork()должен выполняться только из «главного» потока («главного» интерпретатора). То же самое относится кPyOS_BeforeFork().Новая версия с 3.7.
-
void PyOS_AfterFork_Parent() -
Функция для обновления некоторых внутренних состояний после разветвления процесса. Она должна вызываться из родительского процесса после вызова
fork()или любой аналогичной функции, которая клонирует текущий процесс, независимо от того, был ли процесс клонирования успешным. Доступна только на системах, гдеfork()определено.Предупреждение
Вызов C
fork()должен выполняться только из «главного» потока («главного» интерпретатора). То же самое относится кPyOS_AfterFork_Parent().Новая версия с 3.7.
-
void PyOS_AfterFork_Child() -
Функция для обновления внутреннего состояния интерпретатора после разветвления процесса. Она должна вызываться из дочернего процесса после вызова
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() -
Функция для обновления некоторых внутренних состояний после разветвления процесса; она должна вызываться в новом процессе, если интерпретатор Python будет продолжать использоваться. Если в новый процесс загружается новый исполняемый файл, вызывать эту функцию не нужно.
Устаревшая с версии 3.7: Эта функция устарела и заменена
PyOS_AfterFork_Child().
-
int PyOS_CheckStack() -
Возвращает true, когда у интерпретатора закончилось место в стеке. Это надёжная проверка, но она доступна только тогда, когда
USE_STACKCHECKопределено (в настоящее время на Windows с использованием компилятора Microsoft Visual C++).USE_STACKCHECKбудет определено автоматически; вы никогда не должны изменять определение в собственном коде.
-
PyOS_sighandler_t PyOS_getsig(int i) -
Возвращает текущий обработчик сигналов для сигнала i. Это тонкий оболочный вызов
sigaction()илиsignal(). Не вызывайте эти функции напрямую!PyOS_sighandler_t- это псевдоним типаvoid (*)(int).
-
PyOS_sighandler_t PyOS_setsig(int i, PyOS_sighandler_t h) -
Устанавливает обработчик сигналов для сигнала i на h; возвращает старый обработчик сигналов. Это тонкий оболочный вызов
sigaction()илиsignal(). Не вызывайте эти функции напрямую!PyOS_sighandler_t- это псевдоним типаvoid (*)(int).
-
wchar_t* Py_DecodeLocale(const char* arg, size_t *size) -
Декодирует строку байтов из кодировки локали с обработчиком ошибок surrogateescape: нераспознаваемые байты декодируются как символы в диапазоне U+DC80..U+DCFF. Если последовательность байтов может быть декодирована как символ-заместитель, используйте обработчик ошибок surrogateescape для экранирования байтов вместо их декодирования.
Кодирование, приоритеты с наивысшим по низкому:
-
UTF-8на macOS, Android и VxWorks; -
UTF-8на Windows, еслиPy_LegacyWindowsFSEncodingFlagравно нулю; -
UTF-8если режим Python UTF-8 включён; -
ASCIIесли локальLC_CTYPEравна"C",nl_langinfo(CODESET)возвращает кодировкуASCII(или псевдоним), а функцииmbstowcs()иwcstombs()используют кодировкуISO-8859-1. - текущая кодировка локали.
Возвращает указатель на новую строку широких символов, используйте
PyMem_RawFree()для освобождения памяти. Если размер неNULL, запишите количество широких символов, не включая нулевой символ, в*sizeВозвращает
NULLпри ошибке декодирования или выделения памяти. Если размер неNULL,*sizeустанавливается в(size_t)-1при ошибке выделения памяти или в(size_t)-2при ошибке декодирования.Ошибки декодирования никогда не должны происходить, если в библиотеке C нет ошибки.
Используйте функцию
Py_EncodeLocale()для кодирования строки символов обратно в строку байтов.См. также
Функции
PyUnicode_DecodeFSDefaultAndSize()иPyUnicode_DecodeLocaleAndSize().Новая версия с 3.5.
Изменено в версии 3.7: Функция теперь использует кодировку UTF-8 в режиме UTF-8.
Изменено в версии 3.8: Функция теперь использует кодировку UTF-8 на Windows, если
Py_LegacyWindowsFSEncodingFlagравно нулю; -
-
char* Py_EncodeLocale(const wchar_t *text, size_t *error_pos) -
Кодирование строки широких символов в кодировку локали с обработчиком ошибок surrogateescape: символы суррогатов в диапазоне U+DC80..U+DCFF преобразуются в байты 0x80..0xFF.
Кодирование, приоритет от высокого к низкому:
-
UTF-8на macOS, Android и VxWorks; -
UTF-8на Windows, еслиPy_LegacyWindowsFSEncodingFlagравно нулю; -
UTF-8если включен режим UTF-8 в Python; -
ASCIIесли локалиLC_CTYPEявляется"C", тоnl_langinfo(CODESET)возвращает кодировкуASCII(или ее псевдоним), а функцииmbstowcs()иwcstombs()используют кодировкуISO-8859-1. - кодировка текущей локали.
Функция использует кодировку UTF-8 в режиме Python UTF-8.
Возвращает указатель на новую выделенную строку байтов, используйте
PyMem_Free()для освобождения памяти. ВозвращаетNULLпри ошибке кодирования или выделения памяти.Если error_pos не
NULL, то*error_posустанавливается в(size_t)-1при успешном выполнении или индекс некорректного символа при ошибке кодирования.Используйте функцию
Py_DecodeLocale()для декодирования строки байтов обратно в строку широких символов.См. также
Функции
PyUnicode_EncodeFSDefault()иPyUnicode_EncodeLocale().Новое в версии 3.5.
Изменено в версии 3.7: Функция теперь использует кодировку UTF-8 в режиме UTF-8.
Изменено в версии 3.8: Функция теперь использует кодировку UTF-8 на Windows, если
Py_LegacyWindowsFSEncodingFlagравно нулю; -
© 2001–2022 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.8/c-api/sys.html