在shell中time函数可以输出调试信息,在terminal输入man time了解用法
用自己定义的格式写入一个文件,然后从这个文件读取数据输出
一个模拟shell的supershell就完成了
system()函数
time函数在linux里有2个,一个在batch直接输入time,一个在usr/bin/time,后者可以得到更多信息
程序的输入可以是 % supershell command 单词之间可以有任意空格
command必须是符合要求的输入,不然统计结果会出错
#include <cstdio> #include <cstdlib> #include <sys/types.h> #include <sys/wait.h> #include <cstring> #include <unistd.h> #include <ctime> #define N 1000 char input[N]; char cmd[N],tmp[N]; const char sp[]="%U %S %E %F %R %w %W %P"; const char pre[]="/usr/bin/time -o temp.txt -f"; /*get the command from string s, format "% supershell command"*/ int getToken(char *s) { int len = strlen(s); int i=0; while(s[i] == ' ' && i<len) i++; if(s[i]!='%'||i>=len) return -1; //not obey format i++; while(s[i] == ' '&& i<len) i++; if(i>=len) return -1; char temp[]="supershell"; for(int j=0;j<strlen(temp);++j,++i) if(s[i]!=temp[j]) return -1; while(s[i]==' '&& i<len) i++; if(i>=len) return -1; return i; } |