링크 ux c 데이터베이스 백업 2 판
14441 단어 linux
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 }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.