博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 伪终端使用, 与/bin/bash子进程交互
阅读量:6226 次
发布时间:2019-06-21

本文共 896 字,大约阅读时间需要 2 分钟。

1 # encoding: utf-8 2  3 import os 4 import sys 5 import time 6  7  8 def child(master, slave): 9     os.close(master)10     os.dup2(slave, 0)11     os.dup2(slave, 1)12     os.dup2(slave, 2)13     os.execvp("/bin/bash", ["bash", "-l", "-i"])14 15 16 def parent():17     master, slave = os.openpty()18     new_pid = os.fork()19     if new_pid == 0:20         child(master, slave)21 22     time.sleep(1)23     os.close(slave)24 25     os.write(master, "fg\n")26     time.sleep(1)27     _ = os.read(master, 1024)28 29 30     os.write(master, sys.argv[1] + "\n")31     time.sleep(1)32     lines = []33     while True:34         tmp = os.read(master, 1024)35         lines.append(tmp)36         if len(tmp) < 1024:37             break38     output = "".join(lines)39     output = "\n".join(output.splitlines()[1:])40     print output41 42 parent()

 

转载于:https://www.cnblogs.com/taotaowill/p/5458242.html

你可能感兴趣的文章
Unity5.6.4f1 配置WebGL教程
查看>>
linux -硬盘分区
查看>>
Struts1防止重复提交
查看>>
JS控制滚动条的位置
查看>>
来自我的破船大大的博客,记录他的iOS成长之路,与君同勉!
查看>>
GridView 编辑、删除 、分页
查看>>
[洛谷P2742]【模板】二维凸包([USACO5.1]圈奶牛Fencing the Cows)
查看>>
C/C++动态二维数组的内存分配和释放
查看>>
HTC G7 官方ROM卡刷包(国行、台版、港版、印度、亚太版、欧版)
查看>>
jQuery笔记(五)jQuery表单验证
查看>>
编程助手JavaScript学习库-面向对象编程笔记
查看>>
聪明的数据结构和笨拙的逻辑代码
查看>>
php_memcache 缓存 下载-安装-配置-学习
查看>>
Java EE之通过表单上传文件
查看>>
Gnome创建桌面快捷方式
查看>>
机器人会偷走你的饭碗吗——药剂师 vs. 巨型药品包装机
查看>>
C++数据类型范围
查看>>
UVa11401
查看>>
86. Partition List
查看>>
mysql 主从配置
查看>>