У меня есть тестовая программа (написанная на Python), которая должна завершить тестируемую программу (написанную на C), отправив ее ^ C . В Unix
proc.send_signal(signal.SIGINT)
работает отлично. В Windows это вызывает ошибку («сигнал 2 не поддерживается» или что-то в этом роде). Я использую Python 2.7 для Windows, поэтому у меня сложилось впечатление, что я смогу сделать это
proc.send_signal(signal.CTRL_C_EVENT)
, но это вообще ничего не дает. Что мне нужно сделать? Это код, который создает подпроцесс:
# Windows needs an extra argument passed to subprocess.Popen,
# but the constant isn't defined on Unix.
try: kwargs['creationflags'] = subprocess.CREATE_NEW_PROCESS_GROUP
except AttributeError: pass
proc = subprocess.Popen(argv,
stdin=open(os.path.devnull, "r"),
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
**kwargs)