• 大小: 6.9MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-23
  • 语言: 其他
  • 标签: Unix  运行时间  

资源简介

设计并实现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< 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\link-cvtres.read.1.tlog

     文件          2  2016-03-29 19:47  mytime\Debug\link-cvtres.write.1.tlog

     文件          2  2016-03-29 19:47  mytime\Debug\link-rc.read.1.tlog

     文件          2  2016-03-29 19:47  mytime\Debug\link-rc.write.1.tlog

     文件       1324  2016-03-29 19:47  mytime\Debug\link.command.1.tlog

     文件       2818  2016-03-29 19:47  mytime\Debug\link.read.1.tlog

     文件        628  2016-03-29 19:47  mytime\Debug\link.write.1.tlog

     文件      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个文件信息

评论

共有 条评论