我写了一个程序,捕捉系统信号“ctr+z”,并通过一个函数进行处理。handle函数后面的代码是raw\u input()函数。我发现在信号捕获处理之后,raw\u input()函数的输入提示不会出现,直到我按下“回车”键。有什么问题?你知道吗
我的代码:
import signal
import re
import os
import readline
import shareApi
def handler(signum, frame): # ctr + z signal is 20
if signum == 20:
path = '/usr/local/tmpConfigFile/signal.data'
shareApi.writeStringToFile(path, str(signum))
def main():
signal.signal(signal.SIGINT, signal.SIG_IGN)
signal.signal(signal.SIGTSTP, handler)
prompt = "$"
while True:
path = '/usr/local/vSw/tmpConfigFile/signal.data'
if os.path.exists(path):
signum = vSwRouterShareApi.readFileToString(path)
if signum == "20":
prompt = "#"
os.system("/bin/rm -f " + path)
os.write(0,"^Z\n")
try:
cmdstr = raw_input(promot) # label
print cmdstr
except:
print ""
continue
"""
有什么问题?如何修复?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐