Spec-Zone.ru › Python 3.8

Утилиты операционной системы

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 равно нулю;

END_OF_DOCUMENT_MARKER ```
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API