b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

上机实验九命令解释程序 2学时 106 return TRUE 主函数 void

电脑杂谈  发布时间:2020-01-18 06:02:05  来源:网络整理

cmd命令窗口mysql查询表数据命令_cmd常见命令使用 2学时_好玩的cmd命令

上机实验九命令解释程序 2学时 106 return TRUE 主函数 void main 声明程序中用到的变量 void cd cmd char dir cd命令处理数组 void dir cmd char dir dir命令处理数组 void GetProcessList 获得平台当前进程列表 void history cmd 获得最近键入的命令 void add history char 将键入命令行添加到命令历史中 HANDLE process int char 创建进程 BOOL killProcess char kill进程 void help 显示帮助信息 char inputarg pathBUFSIZE int input len HANDLEhprocess 进程执行结束 返回进程句柄 DWORD dwRet while true 显示提示符 等待用户输入命令是个无限循环过程 将指向输入命令的指针变量初始化 NULL获得当前目录并存入path中 BUFSIZE是最多能够保存的路径名长度 dwRet GetCurrentDirectory BUFSIZE path 返回目录数据实际长度存于dwRet 返回当前目录失败输出错误信息 cout GetCurrentDirectory failed GetLastError endl else dwRetBUFSIZE BUFSIZE长度大于返回目录数据的长度 输出错误信息 cout GetCurrentDirectory failed buffer too small need dwRet bytes elsecout path 显示提示符 当前目录名 键盘键入 input len 将命令开头的无用字符过滤掉while cinget 输入为空命令仅输入回车符 continue结束本次循环 回到循环开头 重新显示提示符 while bufinput len cinget 上机实验九 命令解释程序 2学时 107 buf input len 加上串结束符分配动态存储空间 将命令从缓存复制至input中 input new char input len strcpy input buf 为了便于后边的处理 将命令行复制到input中 解析命令 inputlen 2是限制只处理1个命令参数即arg 为命令arg 去掉连在一起的多个括号continue else buf newchar sizeof char strcpyarg buf将命令或参数复制到arg中 准备取下一个参数else 不是 字符则存入buf addhistory input 将键入命令添加至历史命令队列中 命令处理 strcmparg NULLcd cmd arg deletearg elsecout cd命令需要选定路径名 deleteinput delete arg continue返回循环开头 重新显示提示符 strcmparg dir命令char route NULL若dir命令无参数 则对当前目录操作 上机实验九 命令解释程序 2学时 108 route path 取当前目录 dir cmd route else dir cmd arg deletearg deleteinput 释放堆空间 delete arg strcmparg tasklist命令GetProcessList 该变量通过读取若干API函数 获取系统当前进程列表 delete input delete arg NULL防止用户误输入命令参数 delete arg strcmparg fp命令前台进程 NULLcout 没有指定可执行文件 deleteinput delete arg 后台标志置0不是后台进程 hprocess process bgarg 创建进程返回新进程的句柄 等待新进程执行完毕 INFINTE表示等待无限制 WaitForSingleObjecthprocess INFINITE WAIT OBJECT 如果进程执行完毕释放控制台 delete input delete arg deletearg strcmparg bg命令 后台进程 上机实验九 命令解释程序 2学时 109 NULLcout 没有指定可执行文件 deleteinput delete arg bgarg 创建后台进程delete input delete arg deletearg strcmparg kill进程BOOL success NULLsuccess killProcess arg success若撤销进程失败 则显示错误信息 cout kill process failed deletearg elsecout taskkill命令应该指定进程ID endl delete input delete arg NULL防止用户误输入命令参数 delete arg strcmparg 显示历史命令history cmd delete input delete arg NULL防止用户误输入命令参数 delete arg strcmparg help命令上机实验九 命令解释程序 2学时 110 help delete input delete arg NULL防止用户误输入命令参数 delete arg strcmparg exit命令cout nBye bye deleteinput delete arg NULL防止用户误输入命令参数 delete arg break退出死循环 结束程序 else 输入命令不恰当 给出出错信息 cout please input correct commmand deleteinput deletearg deletearg continue主变量结束 相关命令出路函数 void cd cmd char route cd命令实现函数 SetCurrentDirectoryroute 设置当前目录 若失败则返回错误信息 cout SetCurrentDirectory failed GetLastError endl dir命令实现函数 void dir cmd char route WIN32 FIND DATA FindFileData 将找到的文件或目录以WIN32 FIND DATA结构返回 files Content head 定义指定文件结构体的头结点和指针HANDLE hFind INVALID HANDLE VALUE 句柄变量初值为“非法句柄值” DWORD dwError 定义32位整数 上机实验九 命令解释程序 2学时 111 char volume name 256 str 22 int file 文件数和目录数初始值为0int64 sum file 总文件大小为0字节其值较大保存为64位整数 int64 idle调用者可用空间 总容积 磁盘总可用空间 unsigned long volume number 卷序列号 char DirSpec headnext NULL DirSpec newchar strncpyDirSpec 为驱动器名DirSpec newchar strcpyDirSpec strncatDirSpec 用于获得驱动器信息DirSpec newchar strlen route newchar strlen route strcpyDirSpec routeDirSpec 为dir命令的目录名strcpy DirSpec routeint len strlen route routelen strncatDirSpec strncatDirSpec 用于查找目录中的所有文件搜素DirSpec 指定的文件文件信息存于FindFileData变量中 返回找到的文件句柄 hFind FindFirstFile DirSpec hFindINVALID HANDLE VALUE 查找句柄返回为无效值 查找失败 cout Invalid file handle Error GetLastErrorendl else 获取卷的卷名 存于volume name 卷序列号 存于volume number GetVolumeInformation DirSpec volumename 50 volume number NULL NULL NULL 10 strlenvolume name n驱动器DirSpec 中的卷没有标签。

cmd常见命令使用 2学时_好玩的cmd命令_cmd命令窗口mysql查询表数据命令

endl else cout n驱动器DirSpec volumename endl cout 卷的序列号是 hex volume number dec endl endl cout DirSpec headtime FindFileData ftCreationTime 获得的文件建立时间 存入文件结构体head中 strcpy head name FindFileData cFileName 获得的文件名 存入文件结构体head中 若数据属性是目录 则置type为0 FindFileDatadwFileAttributes FILE ATTRIBUTE DIRECTORY head type dir上机实验九 命令解释程序 2学时 112 else 如果数据属性是文件 type位为1 head type headsize FindFileData nFileSizeLow 将文件大小存入结构体head中 file 文件数增1 sum file FindFileData nFileSizeLow 将文件大小 字节数 累加 headp指向头结点head 如果还有下一个数据 继续查找 while FindNextFile hFind FindFileData 第二个结点开始分配动态空间 newfiles Content sizeof files Content nextNULL timeFindFileData ftCreationTime 保存文件创建时间 strcpy nameFindFileData cFileName 保存文件名 FindFileDatadwFileAttributes FILE ATTRIBUTE DIRECTORY 找到的是目录dir 目录数增1 else 否则 找到的是文件 如果数据属性是文件 type位为1 sizeFindFileData nFileSizeLow 将文件大小存入结构体 file 文件数增1 sum file FindFileData nFileSizeLow 将文件大小累加 nextNULL 链表尾结点的next指针须置为NULL 将结构体中数据的构建时间、类型、大小、名称等信息依次输出 head从数组头结点开始 while NULLftime time按要求格式显示文件构建时间 若是目录则显示“ DOR else若是文件 则按宽度为9的格式显示文件大小 字节数 cout coutwidth coutdec unsigned size上机实验九 命令解释程序 2学时 113 cout nameendl 显示文件名 next准备显示下一个目录项 文件或目录 显示文件和目录总数及其磁盘空间相关信息 cout width 15 cout file 个文件 printf使用格式符“ I64d”可以输出64位整数 但“cout ”只支持32位整数 故此处先将64位整数sum file转换成以10字节方式的字符串后再输出 i64toa sum file str 10 64位整数sum file转换成10字节字符串存于str中 cout str 字节 endl GetDiskFreeSpaceEx DirSpec PULARGEINTEGER userPULARGE INTEGER sumPULARGE INTEGER idlecout width 15 cout dir 个目录 idlestr 10 64位整数l idle转换成10字节字符串存于str中 cout str 可用字节 coutwidth 15 i64toa sumstr 10 64位整数l sum转换成10字节字符串存于str中 cout str 磁盘总字符 endldwError GetLastError FindClose hFind 若发生其它异常状况 则输出错误信息 dwErrorERROR MOREFILES cout FindNextFile error Error dwErrorendl 释放files Content结构体占用的动态空间 nexthead占用的不是动态空间 跳过head while nextdelete 依次释放filesContent链表的后续节点 tasklist命令void GetProcessList 函数功能 获取平台当前运行进程列表的命令 HANDLE hProcessSnap NULL PROCESSENTRY32 pe32 上机实验九命令解释程序 2学时 114 int pn 用于累积进程数对平台中的进程进行拍照 hProcessSnap CreateToolhelp32Snapshot TH32CS SNAPPROCESS hProcessSnapINVALID HANDLE VALUE cout nCtreateToolhelp32Snapshot failed GetLastError 使用前应填充结构大小 pe32 dwSize sizeof PROCESSENTRY32 列出进程 Process32FirsthProcessSnap pe32 DWORD dwPriorityClass cout n优先级 doHANDLE hProcess hProcess OpenProcess PROCESS ALL ACCESS FALSE pe32 th32DefaultHeapID dwPriorityClass GetPriorityClass hProcess CloseHandle hProcess 输出结果 cout pe32 riClassBase 输出该进程的优先级cout pe32 th32ProcessID 输出该进程的pidcout pe32 cntThreads 输出该进程的线程数cout pe32 szExeFile endl 输出进程名 或能执行文件名 pn 进程数增1 while Process32Next hProcessSnap pe32 当快照中有下一个进程 继续循环 cout pn 个进程 endlelse cout nProcess32First failed GetLastError CloseHandle hProcessSnap 释放快照句柄 void add history char inputcmd 将命令行插入历史队列中 envhis end envhis end HISNUMend加1 准备将新的命令行插入队列 end和start指向同一数组 envhisend envhis start 若队列满 则允许新插入的命令行覆盖旧命令行 envhis start envhis start HISNUM调整队列头指针start 移一位 将命令存入end指向的字段中 strcpy envhis his cmd envhis end inputcmd history 命令 void history cmd 显示历史命令 int envhisend envhis start 上机实验九 命令解释程序 2学时 115 cout 无历史命令 循环变量为空else envhisstart envhis end 显示history命令数组中start 1到end的命令 envhisstart envhisend envhishis cmd else否则 应分两段处理 显示history命令数组中start 1到HISNUM 1的命令 envhisstart envhishis cmd 显示history命令字符中0到end1的命令 envhisend envhishis cmd coutendl endl 创建进程命令 HANDLE process int bg char appName fp和bg 命令读取此变量 初始化进程相关信息 STARTUPINFO si 关于STARTUPINFO结构的成员的介绍 参看MSDN PROCESS INFORMATION pi 关于PROCESS INFORMATION结构的成员的介绍 参看MSDN si cb sizeof si si cb的值应是STARTUPINFO结构体的大小 字节数 GetStartupInfo si 获得STARTUPINFO结构体 存于si中 ZeroMemory pi sizeof pi 擦去pi的内容 其存储空间清零 前台进程设置钩子 捕捉组合键Ctrl C命令 收到即结束进程 SetConsoleCtrlHandlerPHANDLER ROUTINE ConsoleHandler TRUE FALSE


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-137283-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 毛静
        毛静

        美派军舰巡航南海中国岛礁12海里

      热点图片
      拼命载入中...