N
Ness
Срочно надо на языке Си написать программу, которая могла бы измерить скорость вывода данных на диск.
Заранее огромное спасибо!
Заранее огромное спасибо!
#include <stdio.h>
#include <time.h>
int main () {
FILE *fp;
char str[80] = "0123456789";
int len;
time_t start, end;
long int t, null_for;
long times = 100;
if ((fp = fopen("diskwr1.dat", "w")) == NULL) {
printf("Ошибка открытия файла diskwr.dat\n");
return -1; }
printf("Определение длительности работы пустого цикла\n");
printf("и одновременно необходимого числа раз выполнения цикла\n");
do {
times *= 2;
start = time(NULL);
for (t=0; t < times; t++);
end = time(NULL);
null_for = difftime(end, start);
printf("times = %li %i\n", times, null_for);
} while (null_for == 0);
len = strlen(str);
printf("Вывод с помощью оператора fputs\n");
start = time(NULL);
for (t=0; t<times; t++)
fputs(str, fp);
end = time(NULL);
/* fputs("\n", fp); */
printf("\nС помощью fputs символ записывается за %e секунд\n",
(difftime(end, start)-null_for)/times/len);
fclose(fp);
printf("Вывод с помощью оператора fwrite\n");
fp = fopen("diskwr2.dat", "wb");
start = time(NULL);
for (t=0; t < times; t++) fwrite(&str, len, 1, fp);
end = time(NULL);
fclose(fp);
printf("с помощью fwrite за %e секунд",
(difftime(end, start)-null_for)/times/len);
return 0;
}
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <time.h>
void main()
{
FILE* file;
int pr, pr1, pr2;
double i;
struct dostime_t t1, t2;
_dos_gettime(&t1);
file = fopen ("test.txt", "wt");
for(i=0;i<10000000;i++)
{
fputc (rand(100), file);
}
_dos_gettime(&t2);
pr1 = (int)t1.second + t2.second+ t1.hsecond+t1.hsecond;
pr2 = (int)t2.second + t2.second+ t2.hsecond+t2.hsecond;
printf("%d\n", pr1+pr2);
fclose(file);
getch();
}
Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab