def __init__(self, args, *, size=core.STANDARD_SIZE, cmd=None, env=None, callbacks_cls=PtyCallbacks, __os_close=os.close, **kwargs):
self._master_fd = -1
super().__init__(size)
master_fd, slave_fd = os.openpty()
try:
self._slave_name = os.ttyname(slave_fd)
_spawn(cmd, args, env, fds={0: slave_fd, 1: slave_fd, 2: slave_fd}, tty=slave_fd)
self._master_fd = master_fd
master_fd = -1
finally:
__os_close(slave_fd)
if master_fd != -1:
__os_close(master_fd)
# configure some sensible defaults
callbacks = callbacks_cls(self, **kwargs)
self.set_callbacks(callbacks)
self.callbacks = callbacks
评论列表
文章目录