简易的windows下命令行统计程序运行时间程序

本文介绍如何在Windows环境下实现类似Unix的time命令功能,通过解析命令行参数、启动指定程序并统计其运行时间来完成。涉及getopt函数的使用、进程创建及输出重定向,并采用GetProcessTimes API进行时间统计。
摘要由CSDN通过智能技术生成

熟悉的Unix的朋友都知道Unix下有一个功能强大的 time 函数。但是在windows下是没有这样的程序的。

本文参考了别人的写的这种程序并做了改进。

1.       剖析命令行参数需要用gccgetopt(argc,argv,"hE:p:s") 函数: (PS: 没有GCC 环境的同学可以用IBM写的一个windows下的getopt 程序,附件中会给出来。)

 

 

2.       根据路径启动程序. 这里看到有人用 ShellExecute 来实现。这样实现有个缺点就是无法把程序的输出展现在当前命令行窗口中。所以我用CreateProcess 来启动程序,同时把程序的输出重定位到标准输出窗口(STDOUT)就可以了。

 

 

3. 统计时间。这里有很多统计方法: GetTickCount () 或者用更精确的 QueryPerformanceCounter() QueryPerformanceFrequency() 来统计时间。但是MS 提供一个API GetProcessTimes() 可以精确统计这个进程的核心态和用户态时间,所以这里用这个来实现。

 

  

 

最后放上效果照片和源程序。

 

图片查看

 

源码下载

 

 

总结:

l  学习了 getopt 的使用和源码

l  熟悉了进程创建和输出重定位

l  学习了获取进程运行时间以及QueryPerformanceCounter() QueryPerformanceFrequency()用法。

 

 

(转载请注明出处)

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值