我想用Popen运行两个C可执行文件。他们两个都有一个while(1)
循环,我希望它们同时运行,但我发现这样做不行。
这是两个C可执行文件:
int main(int argc, char *argv[]){
char str1[20];
int i = 0;
while(i < 30){
fprintf(stderr, "hello1\n");
i++;
}
while(1);
}
int main(int argc, char *argv[]){
char str1[20];
int i = 0;
while(i < 30){
fprintf(stderr, "hello2\n");
i++;
}
while(1);
}
这是python代码:
processes=[subprocess.Popen(program,universal_newlines=True,shell=True) for program in ['./hello1', './hello2']]
for process in processes:
process.wait()
仅打印“ hello1”并挂起。
答案 0 :(得分:0)
您的C代码具有未引用的变量str1
,仅供参考。但这不是问题。
但是,在使用Visual C ++构建hello1.exe
和hello2.exe
并运行脚本之后,我没有得到您所遇到的错误,因此看来您的问题特定于其他有关您的设置。
#include "stdafx.h"
#include "stdio.h"
int main(int argc, char *argv[]) {
int i = 0;
while (i < 30) {
fprintf(stderr, "hello[1/2]\n");
i++;
}
while (1);
}
然后按预期运行:
import subprocess
processes = [subprocess.Popen(program, universal_newlines=True, shell=True) for program in ['hello1.exe', 'hello2.exe']]
for process in processes:
process.wait()
它将同时打印hello1
和hello2
30次并等待。