質問編集履歴

3

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

2020/05/10 12:49

投稿

chiko.unagi
chiko.unagi

スコア13

test CHANGED
File without changes
test CHANGED
@@ -113,3 +113,91 @@
113
113
 
114
114
 
115
115
  ```
116
+
117
+
118
+
119
+ ###試したこと
120
+
121
+ ```main.c
122
+
123
+ #include <stdio.h>
124
+
125
+ #include <unistd.h>
126
+
127
+ #include <time.h>
128
+
129
+ #include "exp1.h"
130
+
131
+
132
+
133
+ double get_current_timecount() {
134
+
135
+ struct timespec ts;
136
+
137
+ clock_gettime(CLOCK_MONOTONIC, &ts);
138
+
139
+ return ts.tv_sec + ts.tv_nsec*1e-9;
140
+
141
+ }
142
+
143
+
144
+
145
+ int main( int argc, char* argv[] ) {
146
+
147
+ FILE* fpr;
148
+
149
+ FILE* fpw;
150
+
151
+ int ret;
152
+
153
+ char buf[4];
154
+
155
+ double t1 = get_current_timecount();
156
+
157
+
158
+
159
+ // 追加
160
+
161
+ if(argc != 2) {
162
+
163
+ printf("usage: %s [filename]\n", argv[0]);
164
+
165
+ exit(-1);
166
+
167
+ }
168
+
169
+
170
+
171
+ fpr = fopen(argv[1], "r");
172
+
173
+ fpw = fopen("tmp.txt", "w");
174
+
175
+
176
+
177
+ ret = fread(buf, sizeof(char), 4, fpr);
178
+
179
+ while (ret > 0) {
180
+
181
+ fwrite(buf, sizeof(char), ret, fpw);
182
+
183
+ ret = fread(buf, sizeof(char), 4, fpr);
184
+
185
+ }
186
+
187
+ fclose(fpr);
188
+
189
+ fclose(fpw);
190
+
191
+
192
+
193
+ //ここまで
194
+
195
+ double t2 = get_current_timecount();
196
+
197
+ printf("%lf\n", t2-t1);
198
+
199
+ return 0;
200
+
201
+ }
202
+
203
+ ```

2

コードの追加

2020/05/10 12:49

投稿

chiko.unagi
chiko.unagi

スコア13

test CHANGED
File without changes
test CHANGED
@@ -55,3 +55,61 @@
55
55
  }
56
56
 
57
57
  ```
58
+
59
+ ```fread/fwrite
60
+
61
+ #include "../exp1.h"
62
+
63
+
64
+
65
+ int main(int argc, char** argv) {
66
+
67
+ FILE* fpr;
68
+
69
+ FILE* fpw;
70
+
71
+ int ret;
72
+
73
+ char buf[4];
74
+
75
+
76
+
77
+ if(argc != 2) {
78
+
79
+ printf("usage: %s [filename]\n", argv[0]);
80
+
81
+ exit(-1);
82
+
83
+ }
84
+
85
+
86
+
87
+ fpr = fopen(argv[1], "r");
88
+
89
+ fpw = fopen("tmp.txt", "w");
90
+
91
+
92
+
93
+ ret = fread(buf, sizeof(char), 4, fpr);
94
+
95
+ while (ret > 0) {
96
+
97
+ fwrite(buf, sizeof(char), ret, fpw);
98
+
99
+ ret = fread(buf, sizeof(char), 4, fpr);
100
+
101
+ }
102
+
103
+ fclose(fpr);
104
+
105
+ fclose(fpw);
106
+
107
+
108
+
109
+ return 0;
110
+
111
+ }
112
+
113
+
114
+
115
+ ```

1

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

2020/05/10 12:28

投稿

chiko.unagi
chiko.unagi

スコア13

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,8 @@
1
- 学校課題で、
1
+ readとfread 、writeとfwriteファイル入出力を計測し、それぞれの性能の比較をしたいのすがまるっきり実装方法がわからないです。
2
2
 
3
- readとfread 、writeとfwriteの入出力のを計測し、比較するという課題が出たのですが、
4
3
 
5
- まるっきり実装方法がわからないです。
4
+
5
+
6
6
 
7
7
  どうやって実行していけばいいのでしょうか。
8
8