日期:2014-05-16 浏览次数:20454 次
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/time.h> #include <unistd.h> #include <mysql/mysql.h> #include<sys/types.h> #include<sys/wait.h> #define DB_HOST "127.0.0.1" #define DB_USER "root" #define DB_PASS "" #define DB_NAME "test" #define DB_PORT 3307 int main(int argc, char **argv) { MYSQL mysql; unsigned int i; int rtn; /*子进程的返回数值*/ unsigned int process_no; unsigned int userId; unsigned int type; unsigned int itemCate; unsigned int itemType; unsigned int itemNum; unsigned int totalCost; unsigned int consumeTime; unsigned int leftBalance; char itemName[1000] ; char sql[20000] ; struct timeval time_start,time_end; float execute_time; //srand(time(0)); for(process_no = 1; process_no < 18; process_no++) { if(fork() == 0) { // 开始执行时间 gettimeofday(&time_start,NULL); mysql_init(&mysql); if(!mysql_real_connect(&mysql,DB_HOST,DB_USER,DB_PASS,DB_NAME,DB_PORT,NULL,0)) { fprintf(stderr, "Failed to connect to database: Error: %s\n",mysql_error(&mysql)); } mysql_query(&mysql,"SET NAMES utf8"); for(i = 0; i < 444444; i++) { sprintf(itemName,"%s",""); userId = rand()%19071388 + 1; type = rand()%4 + 1; itemCate = rand()%15 + 1; itemType = rand()%100 + 1; itemNum = rand()%100 + 1; totalCost = rand()%10000 + 1; consumeTime = rand()%1309120853 + 1; leftBalance = rand()%10000 + 1; sprintf(sql,"insert into user_consume1(userId,type,itemCate,itemType,itemNum,totalCost,consumeTime,leftBalance,itemName)values(%d,%d,%d,%d,%d,%d,%d,%d,'')", userId,type,itemCate,itemType,itemNum,totalCost,consumeTime,leftBalance); if(mysql_query(&mysql,sql)) { fprintf(stderr,"query failed:%s",mysql_error(&mysql)); } } mysql_close(&mysql); // 结束执行时间 gettimeofday(&time_end,NULL); execute_time = (time_end.tv_sec - time_start.tv_sec) + (time_end.tv_usec - time_start.tv_usec)/1000000; printf("execute time:%f\n",execute_time); exit(0); } else { /* 父进程, 等待子进程结束,并打印子进程的返回值 */ //wait ( &rtn ); //printf("child process return %d\n",rtn); //return 0; //printf("execute child process return %d\n",process_no); } } return 0; }