回答編集履歴

2

誤記訂正

2018/01/03 11:14

投稿

KSwordOfHaste
KSwordOfHaste

スコア18392

test CHANGED
@@ -52,4 +52,4 @@
52
52
 
53
53
 
54
54
 
55
- またせっかくエラーチェックをやっていますが、呼び出し元のmain関数の中でgetFileSizeの結果が-1かどうかお構いなしに先に進めています。エラーチェック漏れではないですか?
55
+ またせっかくgetFileSizeでエラーチェックをやっていますが、呼び出し元のmain関数の中で結果が-1かどうかお構いなしに先に進めています。main関数でのエラーチェック漏れではないですか?

1

追記

2018/01/03 11:14

投稿

KSwordOfHaste
KSwordOfHaste

スコア18392

test CHANGED
@@ -15,3 +15,41 @@
15
15
 
16
16
 
17
17
  本来EOFに達した際に「読み込みデータなし」と表示されるように意図していたと思いますが、それが表示されずにプログラムが終了した点について気付けたらご自分でもわかったかも知れませんね。
18
+
19
+
20
+
21
+ ---
22
+
23
+ 余談ですが、getFileSize関数のif文のbraceが抜けているように思います。インデンテーションからいえば以下のようにするつもりだったのだと思います。
24
+
25
+
26
+
27
+ ```C
28
+
29
+ if (stat(file, &statBuf) == 0) { // <=== braceが必要
30
+
31
+ // ファイルfileからファイル情報を取得し、
32
+
33
+ // stat構造体変数statBuf)に格納する。
34
+
35
+
36
+
37
+ size = (int)(statBuf.st_size); // サイズを取得
38
+
39
+ printf("size: %d(バイト)\n",size); // 表示
40
+
41
+
42
+
43
+ return statBuf.st_size;
44
+
45
+ } // <=== braceが必要
46
+
47
+ return -1L;
48
+
49
+ }
50
+
51
+ ```
52
+
53
+
54
+
55
+ またせっかくエラーチェックをやっていますが、呼び出し元のmain関数の中でgetFileSizeの結果が-1かどうかお構いなしに先に進めています。エラーチェック漏れではないですか?