changeset 46:e13aac1cff0f

fix
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Thu, 21 May 2015 23:30:54 +0900
parents 89a198fa6b23
children 3d59066744d8
files c/dfaTobin/README c/dfaTobin/main.cc c/dfaTobin/read.h
diffstat 3 files changed, 3 insertions(+), 119 deletions(-) [+]
line wrap: on
line diff
--- a/c/dfaTobin/README	Mon May 18 13:34:36 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-(2013.11.11)
-一括readと分割readの時間比較のためのプログラム
-
-"Usage : ./read_lseek [-file filename] [-b -d]"
-
--b bulk read(一括read)
--d divide read(分割read)
-
-ONE_TASK_READ_SIZE にて分割サイズを変更できる。
--- a/c/dfaTobin/main.cc	Mon May 18 13:34:36 2015 +0900
+++ b/c/dfaTobin/main.cc	Thu May 21 23:30:54 2015 +0900
@@ -1,120 +1,19 @@
 #include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <string.h>
-#include <stdbool.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include "read.h"
-#include "test.h"
-
-static double st_time;
-static double ed_time;
-
-/*
- * -b : bulk read 一括read
- * -d : divide read 分割read (default)
- */
-const char *usr_help_str = "Usage : ./read_lseek [-file filename] [-b -d]";
-const int ONE_TASK_READ_SIZE = 4096 * 1;
-bool bulk_flag = true;
-bool divide_flag = false;
-
-void result_printf(int,char *);
-void divide_read(int,char*,read_t);
-void bulk_read(int,char*,read_t);
-
-static double
-get_time(){
-    struct timeval tv;
-    gettimeofday(&tv,NULL);
-    return tv.tv_sec + (double)tv.tv_usec*1e-6;
-}
 
 int main(int argc, char *argv[]){
 
-    struct stat sb;
-    read_t r;
+    char *regex = 0;
 
-    char *filename = 0;
     for (int i = 1; argv[i]; ++i) {
         if (strcmp(argv[i], "-file") == 0){
-            filename = argv[i+1];
-        }else if(strcmp(argv[i], "-b") == 0){
-            bulk_flag = true;
-            divide_flag = false;
-        }else if(strcmp(argv[i], "-d") == 0){
-            bulk_flag = false;
-            divide_flag = true;
+            regex = argv[i+1];
         }
     }
 
-    if (filename == 0){
+    if (regex == 0){
         puts(usr_help_str);
         exit(1);
     }
 
-    st_time = get_time();
-
-    int fd = -1;
-    if ((fd=open(filename,O_RDONLY,0666))==0){
-        fprintf(stderr,"can't open %s\n",filename);
-    }
-
-    if (fstat(fd,&sb)){
-        fprintf(stderr,"can't open %s\n",filename);
-    }
-
-    r.text_size = sb.st_size;
-    char *text = (char *)malloc(sizeof(char)*r.text_size);
-
-    r.one_task_read_size = ONE_TASK_READ_SIZE;
-
-    r.task_num = r.text_size / r.one_task_read_size;
-    r.task_num += ((r.text_size % r.one_task_read_size) != 0);
-
-    if(bulk_flag == true){
-        bulk_read(fd,text,r);
-    }else if(divide_flag == true){
-        divide_read(fd,text,r);
-    }
-
-    free(text);
-    close(fd);
-
-    ed_time = get_time();
-    printf("Time: %0.6f\n",ed_time-st_time);
-
     return 0;
 }
-
-/* lseekで読む場所を指定してあげないといけないと思ったが、
- * readで読み込むだけでも読み込む場所が変わってくれるらしい。
- */
-void divide_read(int _fd,char* _text,read_t _r){
-    for(int i = 0; i < _r.task_num; i++){
-        //lseek(_fd, i * _r.one_task_read_size,SEEK_SET);
-        read(_fd,_text,_r.one_task_read_size);
-        result_printf(i,_text);
-    }
-    puts("divide read");
-    printf("text size    :%lu\n",_r.text_size);
-    printf("one task size:%d\n",_r.one_task_read_size);
-    printf("task num     :%d\n",_r.task_num);
-}
-
-void bulk_read(int _fd,char* _text,read_t _r){
-    int i = 0;
-    read(_fd,_text,_r.text_size);
-    result_printf(i,_text);
-    puts("bulk read");
-    printf("text size    :%lu\n",_r.text_size);
-}
-
-void result_printf(int _i,char *_text){
-    //printf("-------%d--------\n",_i + 1);
-    printf("[task No. %d]%s\n",_i,_text);
-    //printf("-----------------\n\n");
-}
--- a/c/dfaTobin/read.h	Mon May 18 13:34:36 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-typedef struct read{
-    int fd;
-    unsigned long int text_size;
-    int one_task_read_size;
-    int task_num;
-} read_t;