直接贴代码:
1 #define MYSIZE 32*1024*1024 2 3 #include <iostream> 4 #include <iomanip> 5 #include <fstream> 6 #include <pthread.h> 7 #include <stdlib.h> 8 #include <string.h> 9 #include <time.h> 10 #include <sys/time.h> 11 12 using namespace std; 13 14 unsigned int My_buffer[MYSIZE]; 15 16 string getFileName(); 17 18 int main(int argc, char **argv) 19 { 20 //out current thread id; 21 cout<<getpid()<<endl; 22 23 struct timeval tpseed; 24 int n; 25 float process; 26 float rule; 27 28 cout<<"Data Buffer is Creating ..."; 29 //clean output buffer 30 fflush(stdout); 31 //process step 32 rule=0.01; 33 34 for(n=0;n<MYSIZE;n++) 35 { 36 //get millionseconds 37 gettimeofday(&tpseed,NULL); 38 //get rand 39 srand(tpseed.tv_usec); 40 My_buffer[n]=(unsigned int)(1+(3000.0*rand())/(RAND_MAX+1.0)); 41 42 process=n/(MYSIZE/100.0); 43 44 if(n%(MYSIZE/100)==0 || ((int)process)<10) 45 { 46 if(process>rule) 47 { 48 rule=rule+0.01; 49 //clean outside char 50 cout<<" "; 51 /*output avaliable char 52 * 33[32;5m set fonts properties 53 * 33[0m set fonts nomal 54 */ 55 cout<<" 33[32;5m Data Buffer is Creating 33[31;1m" 56 <<setprecision(2)<<process<<"% 33[32;5m ... 33[0m"; 57 //clean output buffer 58 fflush(stdout); 59 } 60 } 61 } 62 cout<<endl; 63 return 0; 64 }