我正在使用以下命令启动子进程:
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用时杀死:
p.terminate()
Run Code Online (Sandbox Code Playgroud)
要么
p.kill()
Run Code Online (Sandbox Code Playgroud)
该命令在后台继续运行,所以我想知道如何实际终止该进程.
请注意,当我运行命令时:
p = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE)
Run Code Online (Sandbox Code Playgroud)
它在发出时会成功终止p.terminate().
我很好奇COM +,DCOM.我知道MSFT不鼓励你原生使用这个工具(意思是用C/C++,实际上没有很多文档可用)但我想学习使用这些技术,比如将Internet Explorer嵌入到C程序中.
我想也许我可以找到那些使用过这个或那个知道这项技术的人.
从哪儿开始?有任何想法吗?任何例子(如Hello World DCOM)?
如何在C中实现Ctrl-C和Ctrl-D的信号处理....所以如果按下Ctrl-C,程序将忽略并尝试再次从用户那里获得输入...如果Ctrl-D是按下然后程序将终止...
我的计划如下:
int main(){
char msg[400];
while(1){
printf("Enter: ");
fgets(msg,400,stdin);
printf("%s\n",msg);
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢,
戴夫
我有这个C程序,至少我认为它是(文件:spa.c,spa.h).有没有什么方法可以从Python执行这个脚本而不将额外的参数传递给Python解释器(如果没有,参数会是什么?)
更新:感谢您的回复.源代码可以在http://www.nrel.gov/midc/spa/#register找到
(请不要被网址中的'注册'吓到,如果你填写表格,你可以立即下载文件(没有验证邮件等)我会尝试你的建议并报告结果.
更新2:我使用gcc编译了源代码,但现在它在尝试调用()时给了我一个权限,即使以root身份运行python(im在Ubuntu 10:10上).
更新3 [Errno 8] Exec格式错误
更新4好的,我搞定了.程序使用printf输出值:
>>> call(['/path'])
Julian Day: 2452930.312847
L: 2.401826e+01 degrees
B: -1.011219e-04 degrees
R: 0.996542 AU
H: 11.105902 degrees
Delta Psi: -3.998404e-03 degrees
Delta Epsilon: 1.666568e-03 degrees
Epsilon: 23.440465 degrees
Zenith: 50.111622 degrees
Azimuth: 194.340241 degrees
Incidence: 25.187000 degrees
Sunrise: 06:12:43 Local Time
Sunset: 17:20:19 Local Time
Run Code Online (Sandbox Code Playgroud)
谢谢大家!