Python Glossary English

Python 3.4+Windowsosфункция

os.get_handle_inheritable()

дескрипторы

Только Windows: возвращает флаг наследуемости (bool) для Windows-хендла; кросс-платформенный аналог для файловых дескрипторов — os.get_inheritable(). Python 3.4+.

Синтаксис

os.get_handle_inheritable(handle, /)

Работает с хендлами Windows (HANDLE), а не с номерами дескрипторов C: например, с тем, что вернул msvcrt.get_osfhandle. Нужна при передаче хендлов дочерним процессам через subprocess с параметром startupinfo. В обычном коде достаточно os.get_inheritable для файловых дескрипторов.

Примеры

import os
print(hasattr(os, 'get_handle_inheritable') == (os.name == 'nt'))  # → True (функция есть только на Windows)
r, w = os.pipe()
print(os.get_inheritable(r))  # → False (PEP 446: новые дескрипторы не наследуются)
handle = __import__('msvcrt').get_osfhandle(r) if os.name == 'nt' else None
print(os.get_handle_inheritable(handle) == os.get_inheritable(r) if handle is not None else True)  # → True

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности