teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

試したコードを乗せました

2020/05/10 12:49

投稿

chiko.unagi
chiko.unagi

スコア13

title CHANGED
File without changes
body CHANGED
@@ -55,4 +55,48 @@
55
55
  return 0;
56
56
  }
57
57
 
58
+ ```
59
+
60
+ ###試したこと
61
+ ```main.c
62
+ #include <stdio.h>
63
+ #include <unistd.h>
64
+ #include <time.h>
65
+ #include "exp1.h"
66
+
67
+ double get_current_timecount() {
68
+ struct timespec ts;
69
+ clock_gettime(CLOCK_MONOTONIC, &ts);
70
+ return ts.tv_sec + ts.tv_nsec*1e-9;
71
+ }
72
+
73
+ int main( int argc, char* argv[] ) {
74
+ FILE* fpr;
75
+ FILE* fpw;
76
+ int ret;
77
+ char buf[4];
78
+ double t1 = get_current_timecount();
79
+
80
+ // 追加
81
+ if(argc != 2) {
82
+ printf("usage: %s [filename]\n", argv[0]);
83
+ exit(-1);
84
+ }
85
+
86
+ fpr = fopen(argv[1], "r");
87
+ fpw = fopen("tmp.txt", "w");
88
+
89
+ ret = fread(buf, sizeof(char), 4, fpr);
90
+ while (ret > 0) {
91
+ fwrite(buf, sizeof(char), ret, fpw);
92
+ ret = fread(buf, sizeof(char), 4, fpr);
93
+ }
94
+ fclose(fpr);
95
+ fclose(fpw);
96
+
97
+ //ここまで
98
+ double t2 = get_current_timecount();
99
+ printf("%lf\n", t2-t1);
100
+ return 0;
101
+ }
58
102
  ```

2

コードの追加

2020/05/10 12:49

投稿

chiko.unagi
chiko.unagi

スコア13

title CHANGED
File without changes
body CHANGED
@@ -26,4 +26,33 @@
26
26
  printf("%lf\n", t2-t1);
27
27
  return 0;
28
28
  }
29
+ ```
30
+ ```fread/fwrite
31
+ #include "../exp1.h"
32
+
33
+ int main(int argc, char** argv) {
34
+ FILE* fpr;
35
+ FILE* fpw;
36
+ int ret;
37
+ char buf[4];
38
+
39
+ if(argc != 2) {
40
+ printf("usage: %s [filename]\n", argv[0]);
41
+ exit(-1);
42
+ }
43
+
44
+ fpr = fopen(argv[1], "r");
45
+ fpw = fopen("tmp.txt", "w");
46
+
47
+ ret = fread(buf, sizeof(char), 4, fpr);
48
+ while (ret > 0) {
49
+ fwrite(buf, sizeof(char), ret, fpw);
50
+ ret = fread(buf, sizeof(char), 4, fpr);
51
+ }
52
+ fclose(fpr);
53
+ fclose(fpw);
54
+
55
+ return 0;
56
+ }
57
+
29
58
  ```

1

性能を比較するということでした。

2020/05/10 12:28

投稿

chiko.unagi
chiko.unagi

スコア13

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
- 学校の課題で、
2
- readとfread 、writeとfwriteの入出力を計測し、比較するという課題が出たのですが、
1
+ readとfread 、writeとfwriteのファイル入出力を計測し、それぞれの性能の比較をしのですが、まるっきり実装方法がわからないです。
3
- まるっきり実装方法がわからないです。
2
+
3
+
4
4
  どうやって実行していけばいいのでしょうか。
5
5
  ちなみに以下のコードをサンプルとして拡張させていくとのことでした。
6
6