⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iospeed.c

📁 cygwin, 著名的在win32下模拟unix操作系统的东东
💻 C
字号:
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <stdarg.h>#include <fcntl.h>#include <unistd.h>#include <windows.h>int verbose = 0;voidv(char *fmt, ...){  va_list ap;  if (!verbose) return;  va_start(ap, fmt);  vfprintf(stdout, fmt, ap);  va_end(ap);}#define TSIZE (1024 * 1024 * 16)unsigned long start_tic;voidstart(FILE *f){  fseek(f, 0, SEEK_SET);  start_tic = GetTickCount();}voidend(){  unsigned long end_tic = GetTickCount();  printf("%6d", end_tic - start_tic);}voidtest(int linesz, int cr){  FILE *f = fopen("iospeed.dat", "wb");  char buf[65536];  int i, fd;  memset(buf, 'x', linesz);  buf[linesz-1] = '\n';  if (cr)    buf[linesz-2] = '\r';  for (i=0; i<TSIZE; i += linesz)    fwrite(buf, 1, linesz, f);  fclose(f);  f = fopen("iospeed.dat", "rt");  fd = fileno(f);  printf("%6d%6d", linesz, cr);  for (i=0; i<TSIZE; i+= 65536)    read(fd, buf, 65536);  start(f);  while (getc(f) != EOF);  end();  start(f);  while (fread(buf, 1, 256, f) > 0);  end();  start(f);  while (fgets(buf, 64436, f));  end();  f = fopen("iospeed.dat", "rb");  fd = fileno(f);  for (i=0; i<TSIZE; i+= 65536)    read(fd, buf, 65536);  start(f);  while (getc(f) != EOF);  end();  start(f);  while (fread(buf, 1, 256, f) > 0);  end();  start(f);  while (fgets(buf, 64436, f));  end();  printf("\n");}intmain(int argc, char **argv){  if (argc > 1 && strcmp(argv[1],"-v") == 0)    verbose = 1;  setbuf(stdout, 0);  printf("              ----- text -----  ---- binary ----\n");  printf("linesz    cr  getc fread fgets  getc fread fgets\n");  test(4, 0);  test(64, 0);  test(4096, 0);  test(4, 1);  test(64, 1);  test(4096, 1);  remove ("iospeed.dat");  return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -