回答編集履歴
1
参考コード追記
answer
CHANGED
@@ -19,4 +19,38 @@
|
|
19
19
|
また、`j`の変数は何を意味しているでしょうか? `han[N]`のインデックスにも参照されているようですが、多分、オーバーフローしてます。
|
20
20
|
|
21
21
|
具体的にどう書き換えるかは、全体の流れを見直す事が必要です。
|
22
|
-
(このコードの流れで書き換えるのはちょっと大変か?)
|
22
|
+
(このコードの流れで書き換えるのはちょっと大変か?)
|
23
|
+
|
24
|
+
中のwhile() 内について、ちょっと参考コード。こんな感じかという事で。
|
25
|
+
```C
|
26
|
+
while(cp!=NULL){
|
27
|
+
cp = strtok(NULL,sikiri);
|
28
|
+
if(cp!=NULL&&c==0){
|
29
|
+
strcpy(log[i].server_name,cp); //ここでサーバーの名前を挿入
|
30
|
+
//// ここから 対応するサーバー番号を探す hに設定 (無い場合は? ...)
|
31
|
+
// for(h=0;h<4;h++){
|
32
|
+
// if(strcmp(log[i].server_name, name[h])==0) break;
|
33
|
+
// }
|
34
|
+
}
|
35
|
+
|
36
|
+
if(cp!=NULL&&c==1){
|
37
|
+
strcpy(log[i].result,cp);//ここで結果を挿入
|
38
|
+
if(strncmp(log[i].result,"-",1)==0){ //1."-"かどうか
|
39
|
+
//// 障害が発生した場合には、それを記録 サーバー番号 h
|
40
|
+
// if (!han[h].count) { // ただし、最初に初期化で false としておく
|
41
|
+
// han[h].count = true;
|
42
|
+
// han[h].time = log[i].time
|
43
|
+
// }
|
44
|
+
}else{
|
45
|
+
//// 前回が障害の場合の処理
|
46
|
+
// if (han[h].count) {
|
47
|
+
// kikan=log[i].time - han[h].time;
|
48
|
+
// printf("サーバー%sが故障状態です\n",han[h].handan_name);
|
49
|
+
// printf("log.time is %ld\nhandan is %ld\n",log[i].time,han[h].time);
|
50
|
+
// printTime(kikan);
|
51
|
+
// han[h].count = false;
|
52
|
+
// }
|
53
|
+
}
|
54
|
+
}
|
55
|
+
}
|
56
|
+
```
|