diff --git a/README.md b/README.md index 9abab65a8b6a11ab7855545bde050e41a4f234f0..c6ad3a2e7af4c02633ca595c2154a714383adfa3 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# FDE Exercise 2.4 +~# FDE Exercise 2.4 ## Task diff --git a/src/main.cpp b/src/main.cpp index fdb2a42c049d5a1c0e8d8d4bab4a281458d3ddcc..fd7b12dcd4ac1fed2bddad6b3cb8794c7bf79d48 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,5 +1,7 @@ #include <iostream> #include <string> +#include<sys/mman.h> +#include <thread> #include "sum.hpp" @@ -8,8 +10,14 @@ int main(int argc, char* argv[]) { std::cout << "Usage: " << argv[0] << " <lineitem.tbl>"; return 1; } + int handle=open(argv[1],O_RDONLY); + auto size=lseek(handle,0,SEEK_END); + auto mapping_size=size+8; + auto data=mmap(nullptr,mapping_size,PROT_READ,MAP_SHARED,handle,0); int64_t price_sum = sum_extendedprice(argv[1]); std::cout << price_sum << std::endl; + munmap(data,mapping_size); + close(handle); return 0; } diff --git a/src/sum.cpp b/src/sum.cpp index dd645cdd70b522c9df1bc23a769ce871c4efc45d..d2cb20fe7f28d418856e7f1915f8f8349822f414 100644 --- a/src/sum.cpp +++ b/src/sum.cpp @@ -25,7 +25,7 @@ int64_t sum_extendedprice(const std::string& file_name) { uint64_t field_number = 0; for (auto row : lineitem) { //-- TODO exercise sheet 2 Task 4.2 - // your code goes here + price_sum+=ToInt(row[5]); //-- } return price_sum;