我有下面的C代码
for(i=0;i<n;i++){
child_pid [i]= fork ();
if (child_pid[i] != 0) {
printf ("");
printf ("");
}
else
printf ("");
我想计算这个程序的执行时间
我试过下面的命令
时间/A.OUT 5
结果是
real 0m1.009s
user 0m0.000s
sys 0m0.004s
root@bt:~/Desktop#
我应该怎么做才能得到正确的格式化输出?
我可以只显示执行时间而不显示执行结果吗?
提前谢谢
最佳答案
所以父进程应该wait
才能终止所有子进程。否则time
将只测量(并等待)第一个进程。这就是您观察到的:第一个进程终止,time
打印其工作时间,然后子进程继续其工作。
一种方法是添加
for (i = 0; i < n; i++) if (child_pid[i]) wait(NULL);
就在
exit(0);
之前。据我所知,没有办法让
time
等待所有子进程终止。关于c - 多进程程序的执行时间(Linux),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20873541/