资源简介
设计并实现Unix的"time”命令。"mytime”命令通过命令行参数接受要运行的程序,创建一个独立的进程来运行该程序,并记录程序运行的时间。
在Windows下实现:
使用CreateProcess()来创建进程
使用WaitForSingleObject()在"mytime”命令和新创建的进程之间同步
调用GetSystemTime()来获取时间
在Linux下实现:
使用fork()/exec()来创建进程运行程序
使用wait()等待新创建的进程结束
调用gettimeofday()来获取时间
mytime的用法:
$ mytime.exe program1
$ mytime.exe program2 t
t为时间参数
显示结果: **小时**分**秒**毫秒**微秒
代码片段和文件信息
#include
#include
#include
#include
#include
using namespace std;
int main(int argc char *argv[])
{
//STARTUPINFO si;
STARTUPINFO si = { sizeof(si) }; //c b 成员设置为该结构的大小
//memset(&si 0 sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO); //扩展该结构 cb初始化
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_SHOW;
PROCESS_INFORMATION pi; //该结构返回有关新进程及其主线程的信息
SYSTEMTIME startend;
if(argc==1)
{
printf(“ERROR!\n“);
}
else
{
string name=(string)argv[1];
//string name=“C:\\Users\\Cathy\\Documents\\Visual Studio 2012\\Projects\\text1\\Debug\\text1.exe“;
TCHAR NAME[MAX_PATH];
copy(name.begin()name.end()NAME);
NAME[name.size()]=0;
TCHAR LINE[MAX_PATH];
string line;
for(int i=2;i {
line+=“ “;
line+=argv[i];//不同参数分割
}
copy(line.begin()line.end()LINE);
LINE[line.size()]=0;
if(CreateProcess(NAMELINENULLNULLFALSECREATE_NEW_CONSOLENULLNULL&si&pi))
{
GetSystemTime(&start);
}
else
{
cout<<“Create Process fails!“< exit(1);
}
}
WaitForSingleobject(pi.hProcessINFINITE); //(句柄对象,定时时间间隔)INFINITE表示线程一直被挂起,直到对象变为有信号状态
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
GetSystemTime(&end);
int yearmonthdayhourminutesecondmillsecond;
year=end.wYear-start.wYear;
month=end.wMonth-start.wMonth;
day=end.wDay-start.wDay;
hour=end.wHour-start.wHour;
minute=end.wMinute-start.wMinute;
second=end.wSecond-start.wSecond;
millsecond=end.wMilliseconds-start.wMilliseconds;
if(millsecond<0)
{
millsecond+=1000;
second-=1;
}
if(second<0)
{
second+=60;
minute-=1;
}
if(minute<0)
{
minute+=60;
hour-=1;
}
/*if(hour<0)
{
hour+=24;
day-=1;
}
if(day<0)
{
day+=30;
month-=1;
}
if(month<0)
{
month+=12;
year-=1;
}*/
cout<*year<<“年“< return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 694 2016-03-29 19:47 mytime\Debug\cl.command.1.tlog
文件 28968 2016-03-29 19:47 mytime\Debug\CL.read.1.tlog
文件 458 2016-03-29 19:47 mytime\Debug\CL.write.1.tlog
文件 2 2016-03-29 19:47 mytime\Debug\li
文件 2 2016-03-29 19:47 mytime\Debug\li
文件 2 2016-03-29 19:47 mytime\Debug\li
文件 2 2016-03-29 19:47 mytime\Debug\li
文件 1324 2016-03-29 19:47 mytime\Debug\li
文件 2818 2016-03-29 19:47 mytime\Debug\li
文件 628 2016-03-29 19:47 mytime\Debug\li
文件 82432 2016-03-29 19:47 mytime\Debug\mytime.exe
文件 415228 2016-03-29 19:47 mytime\Debug\mytime.ilk
文件 93 2016-03-29 19:47 mytime\Debug\mytime.lastbuildstate
文件 1510 2016-03-29 19:47 mytime\Debug\mytime.log
文件 257473 2016-03-29 19:47 mytime\Debug\mytime.obj
文件 814080 2016-03-29 19:47 mytime\Debug\mytime.pdb
文件 31232 2016-03-29 19:00 mytime\Debug\text1.exe
文件 707584 2016-03-29 19:47 mytime\Debug\vc110.idb
文件 397312 2016-03-29 19:47 mytime\Debug\vc110.pdb
文件 2197 2016-03-29 19:47 mytime\mytime.cpp
文件 32309248 2016-03-30 11:01 mytime\mytime.sdf
文件 878 2016-03-29 19:47 mytime\mytime.sln
..A..H. 19968 2016-03-30 11:01 mytime\mytime.v11.suo
文件 4008 2016-03-29 19:47 mytime\mytime.vcxproj
文件 944 2016-03-29 19:47 mytime\mytime.vcxproj.filters
文件 377 2016-03-29 19:47 mytime\mytime.vcxproj.user
目录 0 2016-03-29 19:48 mytime\Debug
目录 0 2016-03-30 11:28 mytime
----------- --------- ---------- ----- ----
35079462 28
............此处省略1个文件信息
- 上一篇:毕业论文设计软件开发
- 下一篇:Verilog 实现的UART通讯
相关资源
- UNIX Network Programming Volume 1 Third Editio
- unix.v6.v7.src.rar
- 国软2012下UNIX考试卷
- Unix痛恨者手册.pdf
- Unix操作系统教程
- UNIX-Linux系统管理技术手册(第四版)
- dbx操作手册-中文版
- The.Art.of.UNIX.programming.pdf(英文版)
- unix程序员手册UNIX高级环境编程相匹配
- Shell Programming in Unix Linux and OS X(4th)
- unixODBC-devel
- UNIX环境高级编程中文版文字版带目录
- UNIX Systems Programming 《UNIX系统编程》
- XV6 a simple Unix-like teaching operating syst
- UNIX网络编程卷1第三版中文.part2
- UNIX网络编程 卷2
- UNIX Linux下curses库开发指南.pdf 高清
- Unix程序设计教程(PDF)+源码
- Linux-UNIX系统编程手册上、下册非影印
- rabbitmq-server-generic-unix-3.8.3.tar.xz 离线
- rabbitmq-server-generic-unix-3.8.3.tar.xz
- UNIX网络编程_卷2
- SpotlightonUnix_70.exe
- seismic unix指导全书14章
- UNIX系统编程 中文版 pdf
- 莱昂氏UNIX源代码分析全本.pdf
- UnixBench 5.1.3
- UNIX环境高级编程(第二版中文)高清
- Unix网络编程高清非扫描版PDF英文
- XPwindow2000unix操作系统安装全集
评论
共有 条评论