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Сообщить о неточности