링크 ux c 데이터베이스 백업 2 판

14441 단어 linux
\ # 더 알 고 싶 으 면 1 판 "Liux c 데이터베이스 백업 1 판" 을 보 세 요.
  1 #include<sys/types.h>
  2 #include<sys/wait.h>
  3 #include<ctype.h>
  4 #include<unistd.h>
  5 #include<string.h>
  6 #include<stdlib.h>
  7 #include<stdio.h>
  8 
  9 //         (       )
 10 #define DB_FILE "./db_list"
 11 //            
 12 #define NUM 20
 13 //             
 14 #define LEN 128
 15 //   DB_FILE        
 16 char *db_list[NUM];
 17 // DB_FILE            
 18 int read_num;
 19 //      
 20 void malloc_dblist();
 21 //      
 22 void free_dblist();
 23 //       
 24 void readDbFile();
 25 
 26 int main(int argc, char *argv[]) {
 27     pid_t pid;
 28     int i;
 29     char buf[LEN];
 30 
 31     //          
 32     readDbFile();
 33     
 34     pid = fork();
 35 
 36     if (pid < 0) {
 37         fprintf(stderr, "fork error
"); 38 exit(1); 39 } 40 41 switch (pid) { 42 case -1: 43 fprintf(stderr, "fork failed
"); 44 exit(1); 45 case 0: 46 // 47 for (i = 0; i < read_num; i++) { 48 memset(buf, '\0', LEN); 49 sprintf(buf, "%s%s%s%s%s", "mysqldump -uroot ", db_list[i], " > ", db_list[i], ".sql"); 50 system(buf); 51 printf("%d,%s
", i, buf); 52 } 53 break; 54 } 55 // 56 if (pid > 0) { 57 int stat_val; 58 pid_t child_pid; 59 60 child_pid = wait(&stat_val); 61 62 if (!WIFEXITED(stat_val)) { 63 fprintf(stdout, "Child terminated abnormaly
"); 64 } 65 exit(1); 66 67 } 68 69 free_dblist(); 70 71 exit(0); 72 73 } 74 75 void malloc_dblist() 76 { 77 int i = 0; 78 //malloc for db_list 79 for (i = 0; i < NUM; i++) { 80 db_list[i] = malloc(LEN); 81 memset(db_list[i], '\0', LEN); 82 } 83 } 84 void free_dblist() 85 { 86 int i; 87 //free db_list's memory 88 for (i = 0; i < NUM; i++) { 89 free(db_list[i]); 90 } 91 } 92 93 void readDbFile() 94 { 95 FILE *fp; 96 97 fp = fopen(DB_FILE, "r"); 98 if (!fp) { 99 fprintf(stderr, "%s not found
", DB_FILE); 100 } 101 else { 102 malloc_dblist(); 103 104 read_num = 0; 105 while (fscanf(fp, "%127[^\r
]
", db_list[read_num]) == 1) { 106 puts(db_list[read_num]); 107 read_num++; 108 } 109 110 fclose(fp); 111 } 112 113 }

좋은 웹페이지 즐겨찾기